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.