stream: refactor to only manage file descriptor.

connect() should be called outside of the stream abstraction by the
connection initiators. this is simply an abstraction on communicating
with that abstraction.