cockpit: Split CockpitPipe out of CockpitFdTransport

In later commits we need to use the queuing and writing to a file
descriptor functionality that's inside of CockpitFdTransport.

Split CockpitFdTransport into CockpitPipe (which contains the base
queeing and writing to a file descriptor and optionally tracking
a subprocess) and CockpitPipeTransport which contains the
CockpitTransport logic.

Renamed to use the naming 'pipe' as it's clearer what this is.
Similar to a unix pipe or pipe(), talking to file descriptors.

Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
agent: Add a new CockpitChannel class

This class is the base class for channel server (ie: agent)
implementations.

Turn dbus-server.c into CockpitDBusJson which derives from
CockpitChannel.

Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
agent: Add CockpitTextStream with 'text-stream' payload type

CockpitTextStream is a channel of payload type 'text-stream'
that transfers raw textual data.

 * Only UTF-8 data is supported. There may be another binary
   stream in the future, but that's not here.
 * Only supports connecting to a unix socket for now, might
   get other connection types in the future implemented in
   the same class.

Fixes #257