Server side authentication works!

Preliminary PR. Please comment heavily, as I don't think it's ready for merge quite yet.

I had to move around some functions to fix the circular imports.
Also, modified authentication decorator to account for permissions.
Finally, updated tests to reflect the changes.

NOTE: I had to do add in some dummy testing code into the `requires_authenticated_user` function as I'm not sure of the best way of doing this. Perhaps @moowiz could help out? :)

Fixes #47 
I left this in for debugging purposes. 

It turns out that running `dev_appserver.py .` gets rid of all ENV variables, so at this point it's impossible to configure the app such that `FLASK_CONF=DEV`. Testing gets around this by not actually calling `dev_appserver.py` and using the `apptest.py` script instead, which retains these variables.

I would like to use DUMMY_AUTHENTICATOR only when FLASK_CONF=DEV but haven't fully figured out a way to do this yet.