add support for saving the loginTime

Changes:
- centralized the custom encoding/decoding logic into a ValueTranscoder.
- utilize GeneralizedTimeValueTranscoder for decoding since it has more robust parsing support built-in
- widened loginTime class to base Joda Time instant interface
- added a test for saving, reading, and updating the login time