The Big Refactor

This PR

- is a follow up on the Watch service cleanup
- removes the need to restart the service on new subscriptions (it's automated now)
- significantly adds to the suite of unit/functional tests
- adds a (real) integration test suite

It also adds an [INTERNALS.md](https://github.com/HouseTrip/routemaster/pull/1/files?short_path=3fc7c0a#diff-3fc7c0a13cddc8a91969a6c4da159e7d) document, intended as an entry point for contributors. I suggest starting reading the PR there.
No it's fine, I was just not familiar with the block syntax for allow :+1: