Refactor the Dispatcher class.

* Move it into its own file
* Have it be responsible for its own state() function
* Additional unit tests.

* Minor cleanup in monitor class.
Only install pip requirements when they are changed.
Monitor compliance as (bool,state) instead of "message".

* Renamed to _get_compliance
* Returns a tuple of (<bool>, <state>).
* "message" no longer passed around, instead generated in the dispatcher
 - May change this later to have a default, but also check the config.
* Monitor only updates the dispatcher on relevant changes.

* Multiple name changes from "status" to "state" where appropriate

* Tests
 - Monitor's conditions for dispatching and update.
 - Integration test between monitor-dispatch-send_alert
 - Improved test for /status page (too much was mocked)
 - /status test also checks that compliance is Unknown orignally.