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`.
This one can also probably get removed if we make the `PUT` a `createOrUpdateIfExists`. Although I guess this is an API style question. Should the creates be `POSTS` against the collection? The only advantage I can see is if we wanted to have create be distinct so that we can thrown an error if they try to create something that already exists.