Text3d: remove redundant call to wcslen
Text3d: setting upper/lower case now uses the selection
Fix T37980: Multiple font objects sharing an external font gives problems

Solved by adding RW lock to BKE_vfont_to_curve.

So now all the threads are allowed to read chars from ghash,
but they'll be locked as soon as one thread would need to load
more chars from font to the ghash.
Follow up to the previous commit: vfont_get_data is to use the same RW lock
Fix movie output when using render border

Reported by @plasmasolutions in IRC.
Text3d: add assert's to check the selection and length are valid
Fix crash moving the cursor after deleting 3d text
correction to previous commit
Text3d: add select all operator

also add Edit menu for 3d text and move cut/copy/paste there.
Added option to have a seperate environment for executing nvcc
This can be used to compiler cuda kernels with Visual Studio 2010 while
the rest of blender is compiled with MSVC 12.0 / 2013
MSVC 2013 buildbot changes
Buildbot SCons MSVC 2013 packing also requires something extra
Code refactor: better distinguish scatter and absorption for volume integration.
Fix cycles volume emission not working with OSL.
Cycles Volume Render: heterogeneous (textured) volumes support.

Volumes can now have textured colors and density. There is a Volume Sampling
panel in the Render properties with these settings:

* Step size: distance between volume shader samples when rendering the volume.
  Lower values give more accurate and detailed results but also increased render
  time.
* Max steps: maximum number of steps through the volume before giving up, to
  protect from extremely long render times with big objects or small step sizes.

This is much more compute intensive than homogeneous volume, so when you are not
using a texture you should enable the Homogeneous Volume option in the material
or world for faster rendering.

One important missing feature is that Generated texture coordinates are not yet
working in volumes, and they are the default coordinates for nearly all texture
nodes. So until that works you need to plug in object texture coordinates or a
world space position.

This is work by "storm", Stuart Broadfoot, Thomas Dinges and myself.
Code Cleanup: unused defines & style
Code Cleanup: cycles tips and long lines
Fix for crash with game engines LibLoad feature
Code Cleanup: quiet unused define warning
Main API: refactor naming, use BKE_main_ prefix and add main arg.