Clearer classes

A couple cleanups of the internal class hierarchy... The CockpitPipeTransport change makes it slightly clearer what's going on. And the CockpitWebSocket class allows us to add more optional arguments there.