Fix T38033: cycles volume emission changes with step size.
Fix T37987: MSVC 2013 has C99 headers and warns for out define hypot _hypot for good reason it seems
Fix :I broke the build for MSVC 2008 this fixes it
UI: Tooltip fix for the Particle Template ID.

Reviewed By: brecht, dingto
Differential Revision: https://developer.blender.org/D165
Fix T38032, typo in Python API documentation.
Text3d: avoid converting utf8 to wchar_t in editmode
Text3d: store number of characters and utf8 length separately

EditFont's use of Curve.len was very confusing, in editmode it
represented the number of characters, in object mode the number of
bytes. add Curve.len_wchar and keep track of both.

Also don't convert the editmode text into utf8 on every keystroke.
Now this is done on exiting editmode or save - to match most other
object types.

This also fixes curves 'body_format' being reported with an invalid size.
Code Cleanup: remove strlen() and unneeded include in recent commit

also fix for incorrect sizeof() use.
Code Cleanup: WIN32 defines, check for _MSC_VER instead of !FREE_WINDOWS
Code Cleanup: use bool for bmesh operator boolean mapping functions
Code clean-up change naming of gpu buffers used by pbvh to better
reflect that. Previous name GPU_Buffers was very similar to GPU_Buffer,
renamed to GPU_PBVH_Buffers