cockpit: Make CockpitTransport an abstract base class

It doesn't need to be an interface. And as an abstract base
class we can have some implementation there.

Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
common: Add new CockpitTransport::control signal

This signal is fired when a control message is received by the
transport, and no recv signal handler has processed it. We use it
in the agent, to have multiple handlers for control messages,
but still avoiding parsing and validating them multiple times.

In the case of the web service, since we're mainly forwarding
messages, we don't use this new signal.

Closes #530
Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>