Extract a Cryption module
Update User to use the Cryption module
Add User#oauth_token to be fetched from a YouTube::Service and cached
Update oauth to use offline access
Add YouTube::Service to fetch an updated oauth_token
Hide decryption logic from the Updater
Tidy up the factory syntax