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.
That's it. `_consumer` checks for the presence of a consumer with Rabbit, this method just turns that into a boolean (we don't want the Bunny internals to bleed through this API).