Auth tests work!...

Fixed up the auth system, a lot has changed and there may be more:

- Made function names a little more consistent. `create_user` is not `create_account`.
- Changed most references of `uid` to user `user_id`, helps with reading the code.
- Cleaned up a few of the docstrings and removed a lot. This is ready for documenting with Sphinx. The module docstrings are now much smaller.
- Fixed url_for lookups in the system. URLs are now namespaced because of the Blueprints so `signin` becomes `auth.signin` this should help with readability. It also fixed our problems with context.
- Added MongoDB service to Travis config. This may be changed because I don't know what version of MongoDB it is! We may have to install via apt.
- The auth test suite passes in isolation. The tests will still not pass yet because I have to fix posts and users packages.

Note: MongoDB has made the code a lot cleaner!