Proof of concept for moving the GammaRay UI to a separate process.

So far this is a single basic read-only model that is connected to a model
in a separate process using TCP. Far from complete, and lots of temporary
scaffolding.
Add a message structure to the network protocol.

This fixes the issue of the client reading past the stream end if the
server sends too big chunks. So far only the client is ported, server
will follow next.
Use the same network messaging code as on the client side.
Don't reset the model when receiving the initial row/column counts.

Now that we can handle large chunks of data from the server correctly,
this no longer crashes the client.
Allow to reconnect to the server, only accept one connection at a time.
Show loading indicator for requested but not yet received data as well.
Add support for header data.
Unify message types and hide their serialization properly.
Send initial greeting message containing the server version.
Handle the message type inside Message already.

We need access to that on several levels, so this is much more convenient
then passing a value read from the stream alongside the message object.
Change message processing and check for the matching version.
Some initial work on object addressing/registration.

We'll need that to eventually be able to handle more than one model.
More work on object addressing.
We can now address different models on the server.

Still hardcoded on the client side, that's next.
Install the client application as well.
Replace hardcoded object address with dynamic watching for server objects.
Add proper message dispatching on the client side as well.

We can now have to different remote models at the same time.
Don't hardcode the server address and port.
Make object address/name map private.
Send notification about removed server object.