Basic connection ability

Create a Connection class representing a connection to a device.
Connections can be opened and bytes can be sent and received directly
via a Connection. The device scan function now returns Connections
rather than tuples.