Add monitor and downtime APIs with integration tests.

**Don't merge until new monitor UI is released**
should we require `name` and `message` here because they're required in the backend?