BGE: Multi-threading animation updates and skinning.

This required BL_ArmatureObject to have tighter control over armatures and poses.
Also, (Blender) armature objects are now copied instead of shared between
BL_ArmatureObjects to avoid race conditions. Also, due to the armature copy,
shape key drivers need a bit of extra fiddling to get the correct armature copy.

Initially OpenMP was used for threading, but then BLI_task was used due to being
less compiler dependent.

This commit also places time spent on skinning updates in the Animation
profiler category (was previously under the Rasterizer category).
Fix building for Windows.
Mempool: fix own error in recent commit

chunks must be added in order for iteration.
Mempool: minor optimization to building free pointer list
Mempool: use define for used freeword and correct define
Dyntopo: avoid mask layer lookups while adding/removing verts
Dyntopo: minor speedups with bmesh use.
Code cleanup: project gpencil in float coords & delete outdated comments
Code cleanup: remove unused functions and convert int -> bool
Correct assert for RNA IDProps
Fix T39563: Tiny unit-display problem in constraint panels.

There is no good solution here, since RNA props can only have one type/unit.
Tried to find the less worse one - have different RNA props for same DNA value
(a bit like the angle/length for camera lens).

Also fixed two other issues with Transform conctraint:
* Angle were still in degrees (yes, another backward-compatibility breacking).
* Scale was absolute, unlike loc/rot.

Also cleaned up a bit the code, replaced some magic numbers by proper enums, ...
Fix T39562: Properties panel Pinning is broken

'scene' was simply not handled in button context.
Fix T39623: deleting an object crashes
Code cleanup: use parens around multi-line defines.
Code cleanup: make the source G rated again.
OpenCL + AMD adapt kernel to newer driver
OpenCL Change opencl_assert to be more like cuda assert where possible.
added some extra warnings and feedback if things go wrong
Fix own broken rB95b25e7333c4 (crash on any undo op :/).

Issue here was that buttons_texture_context_compute() was getting scene from (button-customized) context,
before the button paths (and hence, context) had been updated. So after an undo, it was getting an invalid
(freed by undo) scene pointer.

Now update BCONTEXT_SCENE path before calling buttons_texture_context_compute().
Color pickers:

* Code Cleanup
* Fix some more color correction cases that were left unattended. (NDOF,
resetting the operation in circle pickers)
Fix own rB8714ae09f894: Forgot to handle bone constraints in versionning code!