Fix problems in hardened password storage.

The password storage had a couple of bugs when saving empty passwords.

If a password was not set, but we tried to store it, we'd get '\tNone'.
This was due to always prefixing with the encrypted password marker, but
not actually encrypting the string. This would then break when we went
to load it, since 'None' wasn't an encrypted password.

We have to work around the loading, so we now check for '\tNone'. Sucks,
but now necessary. Down the road, perhaps we can convert any that are
busted during upgrade.

Storage has been fixed to serialize None values correctly.

Reviewed at https://reviews.reviewboard.org/r/6495/