Cycles: Fix for the MSVC which doesn't have default osteram constructor
Atomics: Add CAS (compare-and-swap) functions
Guardedalloc: Implement atomic peak memory update

Updating maximum requires a bit of a cycle which usually does 1 iteration only,
sometimes needs a bit more but seems there's no speed regressions.

For now the code is commented out. This way it's easier for others to verify
there's no speed regressions.

Reviewers: campbellbarton

Differential Revision: https://developer.blender.org/D626
Cycles: Better feedback about experimental features being used

Instead of having a label which basically duplicated the information
about experimental feature set being used (which had a bug because
it claimed experimental GPU kernel is used even if compute device is
CPU btw) now we've got an enum item icon.

So once you switched to experimental feature set you'll see an
exclamation mark icon in the enum, so you know something might be
unstable or slow.
Cycles: Accidentally inverted the logic of NDEBUG macro
Cycles: Keep ccl_always_inline always inlining the stuff

It works around strange shading bug when building with MSVC.
If such weirdeness continues, we perhaps would need to use
proper inline flags all the time.

Anyway, lets see how things will behave now.
OpenGL fix: GL_COLOR_ARRAY is client state
Fix build errors in atomic ops and warning in aligned malloc on OS X.
Fix use of uninitialized variable in mesh_get_mapped_verts_coords.

It did not cause an actual bug, this code path is never executed at the moment.
OpenNL: modify SuperLU to use doubles rather than floats, for better precision.

This helps to improve the accuracy of UV unwrapping and laplacian deform for
high poly meshes, which could get warped quite badly. It's not much slower,
doubles are pretty fast on modern CPUs, but it does double memory usage. This
seems acceptable as otherwise high poly meshes would not work correctly anyway.

Fixes T39004.
Fix the skin modifier crashing when building without Bullet.
Code style.
Cleanup: unused
Fix for missing initialization of Freestyle RenderData parameters for new scenes.
Cycles: Keep STACK_MAX_HITS private in kernel_shadow

This way adding record_all for other things becomes easier and doesn't
lead to naming conflicts.
SCons: Don't compile libmv stub when libmv is actually enabled

Really weird linux and windows didn't have duplicated symbols error.
Fix T41961: Crash by Copy n Paste splines to new mask without layer

It makes much more sense to ensure layer before pasteing, makes roto
as easy as it has never been before!
Fix for missing shortcuts for mask copy/paste

It's a safe fix and would be real cool to have in final release,
it makes roto even easier than mentioned in the previous commit.
Tracking: Add shortcuts for the copy-paste as well
Tracking: Some minor improvements to copy-paste

- Deselect all existing tracks when pasteing, makes it
  easier to tweak stuff after the paste.

- Make first of the pasted tracks active.