Cycles: SSE optimization for sRGB conversion (gives 7% speedup on CPU for pavillon_barcelone scene)

Thanks brecht/dingto/juicyfruit et al. for testing and reviewing this patch in T38034.
Bevel: use stack memory for interp_vmesh()

Rather then using the memarena and never freeing.
Cleanup: use blend() in perlin noise (gives 12 less instructions on SSE4.1)
Cycles: Minor optimization (~1%) for texture access on CPU
Cmake: fix kernelcompile after introduction of util_simd.h
Take back last header copy, due it is for native only, must be a runtime solution, todo: do by definitions
Cycles: Don't include SIMD util file for OpenCL/CUDA, this fixes OpenCL compilation.
Added scons option to actually build the sse41 kernel. CMake already has it
Fix to own previous commit for bevel vertex only case.

In separating out the adj mesh change from a profile change,
I'd forgotten that some profiles need to be flat (in particular,
for vertex-only bevels). This fixes that.
OSX/scons: autodetecting sse4.1 capability and set it to used
OSX/scons: after discussion i was told cycles does decide to use sse4.1 kernel on the fly,
so autodetection is obsolete @buildtime. Leave in print for testing case
Code cleanup: defines for statfs were getting out of hand for BSD's.

add __DragonFly__ and internal defines to avoid copy-pasting checks.

also remove __CYGWIN32__ check, since cygwin is no longer supported.
Fix bash/ksh specific test syntax

[ foo = bar ] has been the traditional compare operator, using == is supported by some shells, but not all. The latter offers no advantage over the former.

Differential Revision: https://developer.blender.org/D179
Text3d: move text selection boxes from Curve to EditFont struct

resolves T38079
Object Operators: make-dupliface and join-uvs weren't using UNDO.

also improve make-dupliface tip
Fix T38044: Filter Key Binding shows Incorrect result
Text3d: Add support for underline characters with text-on-path
Fix T38075, crash from shader node add/replace tree view template.

The sanity check for copying socket default value was using the socket
idname for type compatibility checks, which is too strict. Subtypes
would not be recognized as copyable, but since only the plain data type
is needed below this is all that needs to be checked.

That alone would not cause crash (just missing default value copy),
but the tree view template was messing with the default_value DNA
directly by freeing it in advance, which is not necessary and should
be left to blenkernel when freeing the node. Otherwise this would
leave the node invalid without a default_value if the copy function
bails out.
Text3d: underline offset on curved path wasnt working right
Armatures Editmode: option to recalculate roll from the angle to the parent