Fix Cycles crashing with previous own commit.

Behavior with NULL context was wrong.
Compositor; Explicitly specify inline function
Cleanup: avoid alloc for each knife-project vector
Texture painting:

Do not generate materials/images/UVs if they are missing.

Now we spawn a panel ("Missing Data") with operators to generate the missing data and
pop a warning if user tries to paint without them.

The reason we have reverted this is that it is too easy to end up with more textures
than we wanted. It was impossible to enter texture paint without having textures added,
and code makes too many assumptions about what user may want.

Discussed during Sunday's meeting.

This might be a candidate for 2.72a but I'm not sure how other artists will take this
(and how refined and crash-free it is), better make a few iterations first.

And for interested parties...test please, don't wait until after a release to poke with such issues.

Also, add slot operator now adds a new unconnected image node in cycles. Only
used in the "Missing Data" panel. This should be a separate commit but I am squashing it into the same commit because
it relies too much on changes done here and can be reverted easily if complainstorm occurs again.
One more bplayer infamous stub fix!
Fix T42088: Creating new keybinds can cause duplicates when saving key config profile

When patching a keymap with a 'UserPref' diff one, do not add keymap items from diff
if they already exists in patched keymap.
RNA: id enum was incomplete
Cleanup: style
Cleanup: warnings
Fix T4199: Knife holes in concave ngons failed

BM_face_point_inside_test assumed the face center was inside the face.
Fix T42074, textured lamps influncing other layers

The solution is to do the multiplication with the energy in the shader
after texture application.

We might be able to avoid setting dyncol completely, but this needs
better investigation. Some shader paths also look a bit redundant.

Also, texture mapping is not supported very well for light lamps, might
also need investigation.
Cleanup to previous commit, we can reuse set_rgb instead of new function
Fix T41957: Shadow color texture mapping was using wrong factor
Cleanup: use bool
Cleanup: redundant casts
Allow render engine to declare whether it's capable of the texture rendering or not

If render engine has bl_use_texture_preview set to truth blender wouldn't fallback to
the blender internal rendering for previews.
Fix T42106: Box image mapping shows black triangles if they point to a corner and blend is 0

After discussion with cambo here we decided it's better to choose arbitrary side of the box
(in this case it's X-axis) and use image from it. That's better than doing a blackness.

P.S. This is literally a corner case anyway.
Call python3 explicitly from tgz util
Icons: were relicensed to GPL2+ metadata was CC-NC
Partial fix of T42052: Clip editor does not support Continue zoom style