QAbstractResourcesManager refactored to use a policy based design

Two policies have been added, AllocatingPolicy and LockingPolicy.
The AllocatingPolicy removes the need for subclassing QAbstractManager to
handle different allocating scheme. This is now handled through a dedicated
AllocatingPolicty that can be easily set by setting a template parameter. The
default AllocationPolicy is ArrayAllocatingPolicy.
QArrayResourcesManager and QListResourcesManager have therefore been removed
and replaced by those. Tests have also been updated.
The second policy, LockingPolicy provides a way to specify the locking
behavior  to be used by the QAbstractResourcesManager. The default is
NonLockingPolicy which doesn't lock anything. The other LockingPolicy provides
locking around a QReadWriteLocker.

The QAbstractResourcesManager class should be renamed to QResourcesManager.

Change-Id: Ifecf7f1bcd5205eff78f9200b4dee004bee28af4
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
RenderNode setHandle public.

Change-Id: Ia568c55f75dbbc11032cc9b78c3c1dd5f0ac6ad8
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
QAbstractResourcesManager renamed to QResourcesManager

Change-Id: Ic89c53ee527cf1f174445f019566b8ab8c648f36
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
EffectManager using LockingPolicy

Change-Id: Ic75d8fd5b080eab061ddfc46555ca558d8477240
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
ShaderManager using LockingPolicy

Change-Id: I715e1f73fd33c67a2e65d95ee3fa8eb23cdcb709
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
TechniqueManager using LockingPolicy

Change-Id: I317b53092ab15723fa55795701de0abab2112d80
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
RenderPassManager using LockingPolicy

Change-Id: Iba4140362f925893ba4eba514f6feecb0dd6e92c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Removed mutex from RenderView

This is now handled through resources managers implementing the LockingPolicy.

Change-Id: I9aba7f63cd0608a66b3038c56b06a028fba8fb55
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
MeshDataManager using LockingPolicy

Change-Id: I3ff25116897338c75eb35f8870a84182ca645438
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
MeshLoaded uses LockingPolicy of MeshDataManager

Change-Id: I05571c372246c7ba1e15fe1eead31e18ec5999d0
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
CameraManager using ListAllocatingPolicy

Change-Id: If3ad9bb26e4511c6b30a4c3e1e362a82884b7899
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Refactored RenderView

Now having one RenderCommand per RenderPass as each RenderPass can have a
different shader. Divided the code in smaller functions. Removed unneeded
elements from RenderCommand.

Change-Id: I10c95ac01b02d0b67f82d7b72b55cffcfecf044d
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
LockingPolicy::WriteLocker and LockingPolicy::ReadLocker

Also renamed the LockingPolicy implementation to ObjectLevelLockingPolicy to
reduce confusion with the template name.

Change-Id: I7a9c298f5068d27dc78716a314e08b4a10c7ea6d
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
MeshManager using LockingPolicy

Change-Id: I73250fcaf5055baba491b14fdd681285cc1984f9
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>