Fix for vpaint_stroke_test_start returning operator flags, not bool

also use bools for paint callbacks
Code cleanup: use bool for static methods
Fix for RNA stringifying enum-flags freeing wrong pointer.
Fix T38471: parenting in the outliner was possible with library linked objects.
Fix T38466: F12 / ctrl F12 shortcuts not showing in Render menu.

This is tricking the keymap system a bit to make it match, this use_viewport
option has no effect when invoked from the info space.
PyAPI: mathutils.Vector.cross now works for 2d vectors (returns a float)

also fixed crash when running on large vectors (raises exception now)
Fix T38478: pin panel, then ctrl+click to collapse others incorrectly unpinned panels.
Fix T38476: incorrect hair draw type after editing particle system in edit mode.
Fix T38340 and T38473: fixed Scene pointers in Composite and Defocus nodes don't get updated based on context.

As discussed in T38340 the solution is to use the current scene from
context whenever feasible.

Composite does not use node->id at all now, the scene which owns the
compositing node tree is retrieved from context instead.

Defocus node->id is made editable by the user. By default it is not set,
which also will make it use the contextual scene and camera info.
The node->id pointer in Defocus is **not** cleared in older blend files.
This is done for backward compatibility: the node will then behave as
before in untouched scenes.

File Output nodes also don't store scene in node->id. This is only needed
when creating a new node for initializing the file format.

Reviewers: brecht, jbakker, mdewanchand

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D290
Scanfill: malloc arrays and zero init members
Scanfill: avoid converting int<>intptr_t for displist indices
Fix T36769: fluid sim modifier can crash blender

Crash only happened when the number of openmp threads were greater than the resolution.
Quiet warning
Scanfill: use poly_nr as an index rather then index + 1
Fix compilation
Building elbeem without openmp failed
Fix player stubs after change in compositor
Add debug print to ID update tagging
Code cleanup: replace magic constants with more verbose bitnames
Fix T35247: Particle texture behaves incorrectly after changing the number of particles

Root of the issue goes to the order of particle initialization which does
texture evaluation (which does depend on particle coordinate) and particle
birth coordinate calculation. So basically what happened is:

* Changing number of particles re-allocated all the particles,
  which sets their coordinate to (0,0,0)
* Texture evaluation used this non-initialized coordinate
* Coordinates were calculated for particles

Reshuffled code a bit so now texture evaluation happens after particles.
coordinate calculation. Basically moved texture evaluation to particle
reset function. Reset happens after initialization anyway and it does
know particle coordinates. Also, if reset is being called without init
then it's also kind of logical to re-evaluate texture because particle
coordinates might change.