Remove dedicated thread from SimpleClient

The thread in SimpleChannel is good enough, nothing is gained
by adding another one in between.
Implement SbtConnector in terms of channel not client

Now open(SbtClient => Unit) is a trivial convenience wrapper for
openChannel(SbtChannel => Unit), and subtypes of SbtConnector
just implement openChannel and don't need to mess with client.