Angular heavy - API

This adds a REST API to the web app. This is the first step towards getting a dynamically updating website.

I have added integration tests for only the most security critical parts of the API because I didn't have time to do 100% coverage. Please feel free to as an exercise add more integration tests in `ApiControllerIT` if you want to learn how to create REST API integration tests. There is roughly 40% left for complete coverage.