Feature: non OpenID users & login screen

This pull request adds several authentication related features:
1. Ability to create non Google-OpenID users, that use username (email) & password to login.
2. Login ('/login') & logout screens ('/logout').

The new functionality is based on [Flask-Login](https://flask-login.readthedocs.org/en/latest/) extension, and all authentication related functionality is now managed through it -- including for the OpenID users. This should make adding additional authentication methods a little easier (although will probably require additional refactor).

Eventually we should switch to [token based authentication](http://blog.auth0.com/2014/01/07/angularjs-authentication-with-cookies-vs-token/), but this should be good for now.

TODO:
- [ ] Add the option to disable either the Google login or the username/password login.
- [ ] Improve the looks of the login screen.
- [ ] Brute force protection.