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.
The code doesn't explicitly check that `self.current_user` is `None`. What
is the correct behavior here?

```python
> class foo():
   ...:     def __str__(self):
   ...:         return ''
   ...:

15:40:57 (mcdonadt@Daniels-MacBook-Pro-2):/Users/mcdonadt
> f = foo()

15:41:00 (mcdonadt@Daniels-MacBook-Pro-2):/Users/mcdonadt
> if f:
   ...:     print "asd"
   ...:
asd

15:41:04 (mcdonadt@Daniels-MacBook-Pro-2):/Users/mcdonadt
> if str(f):
    print "asd"
   ...:
```

On Tue, Dec 23, 2014 at 2:51 PM, Joshua Shorenstein <
notifications@github.com> wrote:

> In qiita_pet/handlers/base_handlers.py
> <https://github.com/biocore/qiita/pull/745#discussion-diff-22237604>:
>
> >      def get_current_user(self):
> >          '''Overrides default method of returning user curently connected'''
> >          user = self.get_secure_cookie("user")
> > -        if user is None:
> > +        if user is not None:
> > +            return User(user.strip("\"' "))
>
> 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.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/biocore/qiita/pull/745/files#r22237604>.
>