Add support for time based OTPs for two factor authentication.

Hopefully Google won't disable QR Code support in their Charts API any time soon...
The deletion is handled automatically by mongoengine as specified in the indexes. http://docs.mongoengine.org/guide/defining-documents.html#indexes This is used in the API data caching as well.