Move salt creation to the key generation method in keys.js
Salt creation should happen not in the constructor but in an
ensureSaltExists() method that is called before
sodium_crypto_pwhash() in the
encryptPassword() method (otherwise, each time we create a new Keys instance, we get a salt that may or may not be relevant to what we want to use that object for).