Add data stream operators needed for sending the signal name map.

Now that we have that, also move the already existing ones there.
Move event tooltip generation to the client side.

This avoids computing and storing all possible event tooltips in the client
side model, which saves a whole lot of memory. And it'll allow us to remove
the entire second hierarchy level from the signal history model in the next
step.
Remove the second model hierarchy level, no longer needed.

This massively reduces memory consumption on the client. Obviously memory
growth is still unbound, but at least now at a rate that makes it survive
a few hours rather than a few minutes. If needed we could address this with
suspending/resuming the recording on demand, but it's no longer a blocker
I think.
Map signal indexes to method indexes when needed.

Qt4 and Qt5 have different semantics for the arguments to the signal spy
callbacks, normalize that to method indexes.
Signal to method index mapping is not already provided to us when needed.
Extend the event dispatch blacklist.

Massively increases performance with Qt4 targets.