Optimize|Builder|qmake: Avoid numerous python invocations when parsing

versions.pri is better pre-generated once and then reused multiple
times. The old way caused a multitude of python processes to be
spawned, as the version numbers were parsed out for every .pro file
separately.
Optimize|libdeng2|Observers: Ensure Loop does not copy the observer set

Profiling showed that iterating through audiences using Observers::Loop
had unexpectedly slow performance due to Loop accessing the data in
a non-const manner and thus forcing Qt to make a copy of the audience
(which needed to be deleted by ~Loop).

This commit ensures that Loop accesses the set in const mode, taking
advantage of implicit sharing.
Optimize|libdeng2|Observers: Use regular mutex

It appears that Qt's QReadWriteLock::lockForRead() has some performance
issues. Using a regular mutex for audiences produces somewhat better
performance.
Fixed|libgui|PersistentCanvasWindow: Command line options for window ignored

'-window' etc. were not being applied to the main window at launch.
Fixed|libgui|PersistentCanvasWindow: Applying command line options to window

At least on OS X there was a problem with the state of the widget
if the attributes were applied to a hidden window (maybe due to
changes being queued?).

Now the command line options are applied to the logical state.