This will (by my reading) also re-set the FacilityUser hash, which is inefficient (since it already exists, and so we're unnecessarily re-hashing with many iterations, and doing an extra DB write). Can there just be a method on `CachedPassword` called `set_password_cache(user, password)` that encapsulates the code from 138 to 150 below, and then we can call just that part from here (and from line 138)?