WIP: Refactor database methods into server

## Overview

This pull request consolidates the `Database` API into `Server`. This simplifies a lot of the code flow -- especially the messaging.

I also consolidated `ClusterAdmin` and `DBUser` together. The matchers have been removed for now and I'll add per-DB permissions back in when we do authentication on the `Handler`.
I think allowing our users to get an error if they try to create something that already exists can be quite useful. It can allow them detect errors in their code. So an API call that just creates, and doesn't update an existing, resource can be useful.

Whatever we do, we should be consistent. The same decision should apply to Retention Policies, Users, etc etc.