Return user objectwith self.current_user

This cleans up the codebase by returning a user object for self.current_user instead of just the email. Almost every instance of the call was just instantiating a user object anyway, so this makes that boilerplate. It also allows the base template to automatically get user info and level for rendering.
[Here](http://tornado.readthedocs.org/en/latest/_modules/tornado/web.html#authenticated) is the code for authenticated, which is the one thing that relies on this besides our direct call. It works fine with returning a User object instead of a string. Also, the User object __str__ is overridden just in case as well.