* Two properties added - DisallowUserDocking which completely prevents
a toolwindow from being dragged or docked other than programmatically.
* HideCloseButton also hides the close button that normally appears on
the tabs created
* Also tabs now watch for title change signals and update the titles in
tabs.
* GUIInvoke helper changed to use QMetaObject::invokeMethod which works
on threads better.
* LambdaThread helper class now has a thread member, it doesn't derive
from thread (this seems to be recommended practice).
* From https://github.com/Riateche/toolwindowmanager
* It seems superior to the built-in Qt docking as-is, and since it's
a few open source files it should be easy to improve with features
we might want to match DockingUI functionality.
* Programmatic sizing for the default layout seems inflexible, but since
that's a one-time thing it's not the end of the world.
* There's no auto-hide functionality.
* The highlighting of where to drop could be improved, as well as the
detection of where to drop (currently it seems to cycle through
several possibilities each second rather than having a consistent drop
location).
* Floating windows could be styled a bit better.
* Need to check whether we can have nested docking sections (so the
texture viewer e.g. can have its own docks, that won't float or go out
of the texture viewer.
* Building qrenderdoc on windows will be supported just because that's
likely where I will be developing it mostly, but for the foreseeable
future it won't be built by default. If it ever gets good enough to
replace the .NET UI, then we can look at it again.