UI: auto-run error could push buttons off the visible header
CMake: fix for MSVC, installing Python
Cleanup: warnings
Mesh sampling system for unified point-on-mesh handling.

This code is not yet used by any feature in master, but has proved very useful in the Gooseberry branch and several WIP patches. Inclusion into master was requested to avoid diverging code in branches and get part of the Gooseberry code merged early on.

The core idea is to have a common way of identifying points on mesh surfaces. Efficient evaluation of such points after deformation and mappable modifiers (e.g. subdivision) tracks positions, normals and other surface attributes. This is used extensively in the particle/hair systems and could be useful for certain tools, duplicators, etc.. Currently the particle systems in particular are very fragile and succeptible to mesh changes because of the unreliable way mesh surface mapping is stored. While the new system at this point uses essentially the same method, it at least provides a centralized DNA type that can be improved easily without too much effort and compatiblity issues.

In addition to evaluating surface samples the system also provides a central place to implement surface sampling algorithms, such as random sampling, ray casting, paint-like tools, etc.

Differential Revision: https://developer.blender.org/D922
CMake: fix for msvc (take2)
Fix T42588: Absolute paths not cleaned on win32

Making paths absolute would leave in "\..\" part on windows.
Dim down default (no) material for cycles so it matches default material
in blender internal
CMake: Warning re: editing windows/py extraction
Cleanup: hopefully last int->bool one in this area!
Cleanup: more int->bool.
Python: add 'render_write' callback

This is useful for addons which intend to write data next to the rendered image/movie,
but not for preview renders.
Fix for potential bug in paint brush RNA updates, was casting to wrong
DNA type.

The update function is for the Paint struct, containing a Brush pointer
property, not Brush itself. Probably went fine so far because was only
used for a notifier pointer, but still ...
Collada Importer: Separated finding bone chains and fixing leaf bone orientations into 2 functions and added a separated import option
UI messages: Minor typo fix.
Fix rare crash dragging number-buttons

Could happen dragging shape-keys UIList & the lower slider at once.
GPencil Drawing: Enable polygon smoothing

This helps to reduce jaggies from thin lines, while also resulting in nicer
lines elsewhere.

I'm not sure if it's just me, but it seems to render slightly differently to
before for 3d strokes too (i.e. they seem a bit softer). Hopefully the
difference isn't big enough to affect/degrade the art style of any projects.
Lasso Select for GPencil Strokes
Fix: Grease Pencil strokes rendered with blotched colours/alpha in OpenGL Playblasts

Thanks to an anonymous tip (or shall we say, a tip from "Anonymous" - thank you
whoever you are :) it is now possible to render out Grease Pencil shots from
the viewport with correct colours again! This has been broken for a few releases
now, so it's great that this works again now, completing the last part of the
pipeline again.
Use more unique allocation strings for new links in the list
Cleanup: style & de-duplicate