Big auth

This big PR adds most of authentication.

1. Interacts with the API
2. Stores the token as a cookie
3. Redirects you to login if you're unauthorized
4. Redirects you back to the page you attempted to access once you do log in
5. Redirects you from login to home if you're authorized
6. Logout works

:trumpet:

To-do:

1. Tidy up the HTML / CSS
2. Manage 'Remember me' button.