Remove some unused roles, just wastes memory on the client side.
Qt4 can't handle the typedef here, qlonglong is what QMetaType knows about.
Keep a map of signal names per item.

This primarily addresses the problem of dynamic meta objects that become
invalid at some point without a way for us to know that.

It might also allow us to get rid of the second model hierarchy, which is
a massive memory drain on the client side.