Restructure Halt/Disconnect Structure

Moves disconnecting event handlers up a level so adaptors/drivers don't have to
worry about it.

Now, Adaptor/Driver subclasses should simply execute the provided callback to
dindicate they're done disconnecting, rather than calling the superclass method
as before.
Remove base Adaptor#disconnect and Driver#halt fns

Would be more useful to module developers to loudly error rather than silently
not work.
Fix broken tests
Merge pull request #226 from hybridgroup/fix/halt-and-disconnect

Restructure Halt/Disconnect Structure