[WIP] User Authentication and Log in

This is a work in progress branch, notably it still needs:

- [ ]  CSRF
- [ ] A better session store than the file system
- [ ] ``?next=`` Handling
- [ ] Some way to actually interact with a logged in user once they've been logged in
- [ ] Internationalization
- [ ] Error Logging
- [ ] Log out / Unauthenticate

However right now it should:

- Successfully accept credentials of a user and store their user id in the session
- Rotate the session id when crossing authentication boundaries
- Prevent leaking of session state when going from one logged in user to another
- Automatically upgrade to newer, securer passwords during log in
- Stash the username in a cookie so javascript can easily access it for **display** purposes only.
- Properly set a ``Vary: Cookie`` header anytime the session is being used.