Lots more work on auth, can actually log in and out now

* A base layout class for things we'll need in every view (settings, session, and request object for example)
* Added model managers class (similar to Django) to every model, though there is still a refactoring opportunity here to get rid of repetitive code
* Added a few methods to each model: save() and delete(), these could also be refactored into a common base class
* Refactor views.py into a module which allows for expansion
* Added auth views (login, logout view)
* Added login.jinja2 template