Authentication

The next major feature is authentication. I'll be working on it in a branch, as this will _finally_ add some tests, and I want to make sure Travis runs them before I merge into master.

I created the first commit with 

    $ git commit --allow-empty -m "start of authentication branch"

And then made this pull request. I'll rebase that commit away once I have some real ones.