Add direct Adaptor access inside Drivers

Adds direct access of the Connection Adaptor inside Driver subclasses.

Since Drivers should be directly communicating with Adaptors, this facilitates that, rather than roundtripping through the Connection where something else can go wrong. This also allows direct event listening on Adaptors, rather than hoping the correct events were propagated to the Connection.

This PR doesn't break backwards compatibility, but ideally Driver subclasses in modules should be switched to directly talk to the Adaptor where appropriate.