UI message fix (yeah, I know... :/ ).
Cycles: Further tweak for Decoupled Ray Marching

Avoid some if checks when probalistic_scatter is false.

Differential Revision: https://developer.blender.org/D743
Code refactor: Split __VOLUME__ defines in Cycles.

* __VOLUME__ is basic volume support with Emission and Absorption.
* __VOLUME_SCATTER__ enables volume Scattering support.
* __VOLUME_DECOUPLED__ enables Decoupled Ray Marching.
Cleanup: Remove __ANISOTROPIC__ define.

That was only needed in the beginning, when we did not had support for tangents. It's time to clean some of the defines up, it's getting a bit too much.
Further cleanup for defines:

* Merge Texture defines
* Remove Normal Map define.
Cleanup
Fix T41517: BMesh intersect crash
BMesh: correct flag use

Allowed fill to make duplicate faces
BMesh: add assert for correct args to creation functions
BMesh: fill - replace SmallHash with GHash
Fix for BMesh fill using arbitrary face-flipping

Use winding of existing boundary edges.

Filling Suzzane's eyes gave different face winding.
Fix T41523: Mesh triangle fill creates flipped faces

Calculate projection normal using edge-pairs
Fix T41507: Empty prevents image deletion

Also allow assigning `Object.data = None` from Python
Fix incorrect 2d stabilization for masks

Reported by Sebastian Koenig in IRC>
Tests: remove support.run_unittest
Fix T41267: Wrong light distribution with when having objects with motion blur
Cycles: Drop support for CUDA 5.0 Toolkit, only 6.0 and 6.5 (recommended) are supported now.
ColorRamp: HSV CW/CCW were flipped
ColorRamp: Use linear V for HSV/HSL blending

This matches RGB blending black/white for eg.
Fix T41528: Error message on trying to import COLLADA triangle strips is wrong

Thanks to Maarten Gribnau for the patch.