Control widgets

Work to
 
 - make a higher level set of widgets for our use
 - make an easier to use layer above QT to simplify making control boxes
 - convert examples/existing messengers to use this code