Attempt to fix guardedalloc on OSX
Cycles Refactor: Add SSE Utility code from Embree for cleaner SSE code.

This makes the code a bit easier to understand, and might come in handy
if we want to reuse more Embree code.

Differential Revision: https://developer.blender.org/D482

Code by Brecht, with fixes by Lockal, Sergey and myself.
Cycles: Calculate face normal on the fly.

Instead of pre-calculation and storage, we now calculate the face normal during render.
This gives a small slowdown (~1%) but decreases memory usage, which is especially important for GPUs,
where you have limited VRAM.

Part of my GSoC 2014.
Cycles: Add dedicated nodes to split/combine vectors.

This was already possible via the RGB nodes, but that seems weird.
CMake fixup for bd43ac04 as indicated by Campbell Barton
Cycles: Add an AVX2 CPU kernel.

This kernel is compiled with AVX2, FMA3, and BMI compiler flags. At the moment only Intel Haswell benefits from this, but future AMD CPUs will have these instructions as well.

Makes rendering on Haswell CPUs a few percent faster, only benchmarked with clang on OS X though.

Part of my GSoC 2014.
Code cleanup.
Cycles: Fix compilation error of AVX2 kernel with GCC/Clang
OSX: update codesigning rules to 2.71
Follow up for previous commit: need to tweak args for scons as well
Implement GLSL code for XYZ nodes.
Attempt to fix sign conversion error happening on buildbot
Cycles: Add support for uchar4 attributes.

* Added support for uchar4 attributes to Cycles' attribute system.
* This is used for Vertex Colors now, which saves some memory (4 unsigned characters, instead of 4 floats).
* GPU Texture Limit on sm_20 and sm_21 decreased from 95 to 94, because we need a new texture for the uchar4 attributes. This is no problem for sm_30 or newer.

Part of my GSoC 2014.
Polyfill2d: replace array with linklist, faster resizing

approx 4.0x speedup
Polyfill2d: Switch directions on concave triangles

Better topology and minor speedup
Polyfill2d: avoid calculating polygon winding (its known in all cases)
Polyfill2d: use kd-tree

Simple search for intersections became slow for larger concave ngons (100+)
Tested to work with ngons up to 75k sides, performance is approx ~6x faster then scanfill.

This is a 2D version of BLI_kdtree with modifications:
- nodes can be removed
- an index -> node map is stored (especially for tessellation)
Comment unused macro
Rename 'Extend Vertex' to be clear it operates on many vertices
Quiet warning in Cycles