bridge: Add CockpitChannel prepare virtual function

This is called in a high priority idler to avoid each channel
having to do this themselves. This is because there's a guarantee
that the channel won't close before g_object_new() returns ...
so doing it this way allows us to keep that guarantee, and yet
not have idle callbacks all over the place.

Closes #1421