common: Clearer split between CockpitPipe and CockpitPipeTransport

After this commit CockpitPipeTransport owns a CockpitPipe. This
simplifies the spawning constructors, and moves the cockpit-ws
logic into that code, rather than leaking it into common code.

Closes #503