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
Anamorphic Lens
Fix for panorama DoF by Aldo Zang
disk sample is cocentric (around zero)