Add unit tests for passwordService.
Bind callback in updateUpstream function to the passwordService.

The callback tries to reference the passwordService with `this`, which fails,
because the callback is bound to a different model. This commit fixes this by
binding the callback function to the passwordService object.
Fix value `created` and `modified` modified of new entries.

The value of `newEntry.created` is set to `newEntry.modified`, but the value of
`newEntry.modified` is not set. This commit sets the value of
`newEntry.modified` to the current timestamp, so that `newEntry.created` and
`newEntry.modified` both hold the current timestamp.
Fix interpolation of missing password with generated one.

When creating or updating an entry, a missing password should be replaced with a
randomly generated password. A password is considiered to be missing if
`newEntry.password` either doesn't exist, is undefined or is an empty string. To
replace a missing password underscore's extend method is used to extend a set of
defaults (including a random password) with the actual submitted data.

The problem with this approach is that underscore's extend only extends missing
properties, instead of all falsy properties.

This commit fixes this problem by deleting the password property of `newEntry`
if `newEntry.password` is falsy.