model each adapter

This adds adapter modeling and stubs out handling.  Now, Ardb tracks
a current adapter (based on the config) and the adapter will contain
all of the behavior specific to it.

The motivation here is to reduce duplication and to centralize the
behavior that is most likely to change over time.

In future PRs, I'll switch each piece to using the adapters.