Massive refactoring & added user authentication.

The website can now be used by multiple users at the same time. Moved
the AWS setup into a separate module, improved the tests and many other
things.