Change the assistant to re-use one widget instead of re-creating it

This saves us from instantiating all the QDeclarativeFoo stuff each time
an assistant is opened, and should make things less performance hungry.
There is now only one assistant instance over the whole lifetime of
KDevelop, which is fed the actions each time they change.
This change also makes some painting-related optimizations possible,
which means we can achieve a similarly low amount of flickering with less
disableUpdates calls (which are very expensive).