WIP Refactor connection types.

Splits up a relatively large file, cleans up some cruft.
Currently breaking on some tests.  Not sure I'm entirely
happy with the layout yet.
WIP Ensemble refactor, broken on some tests.