Palettes:

Avoid having an invalid active index if user deletes a color.

Also attempt to set active color on clicking (Not working yet but fix
coming soon)
Palettes

* Remove some duplication in deletion code
* Fix crash when restoring file from last saved state.
Palette active color:

Use indicator color derived from color luminance for better contrast.
Fix T41708, active palette indicator not refreshing when clicking

Issue, after a lot of blood sweat and tears, was found in
ui_but_update_from_old_block, where we restore a button to its old
values when possible. The problem here is that a1 and a2 are not really
meant to store temporary variables, because they tend to get overriden
and palette selection is one of those temporary states.

Instead, we now store the position of each button in the palette in a2
and pointer to the palette in the customdata pointer of each button and
use that to test if it's active. The positions won't change when
clicking so we are guaranteed that the old button won't override the new
one with garbage.

It's still hacky but it is better than testing button types when copying
old values.
One last tweak to palette deletion code. It would correct active color
only when deleting the last color.
Fix crashes with timers.

Incorrectly accessing the menu pointer, set it to NULL before doing the
tests.

We don't restore the menu pointer because it is invalid by the time the operator ends.
Freestyle: Python API documentation updates.

Fixed dead references of API identifiers (e.g., freestyle.types.Interface0D)
due to relocations of the identifiers into submodules.  Also made various minor
revisions of mark-ups and typos.
Freestyle: Fix for irrelevant docstring showing up in Python API docs.
Add texture coordinate export.
Cleanup: Indentation and Whitespace.
Cycles: Remove unused Mix Shaders from the ShaderGraph, instead of only relinking.

Differential revision: https://developer.blender.org/D796
Fix T41865: Fluid bake not possible in windows using a python script from the command line

Stupid missing variables initialization.
OSX: make some more symbols global only, this may prevent clashes on older systems and is good for loading times anyway.
Install_deps: add an '--info' path option to store BUILD_NOTES.txt...

Still defaults to current dir!
Fix T40751 preview image not generated after baking.

A DAG_id_tag_update here is enough to fix the problem.
Fix T35993, issue with viewport when using instances.

Not really sure what the issue here was initially (might have been a
driver problem) but looks like the issue is solved if we skip generating
a display list for clipped objects; Driver does not like a generated
list that is not drawn.

Now we try to clip the object always, not only when using display lists.
This means that display lists will only get generated if object is
actually visible.
Also used glPush/glPop for instance matrices since glLoad can cause
recalculation of inverses in the driver.
Fix T41875: Update issue in Timeline space

This space did not refresh on NC_OBJECT, ND_BONE_SELECT notifier...
Cycles: Add a UI warning, in case the experimental GPU kernel is used.

The experimental kernel is slower and can cause issues on some cards still, so better communicate it well.
Cycles: Backward compatibility code for the Clamp splitting in 2.70.

If an older file (< 270) had clamp enabled, with e.g. a value of 2.0, Direct and Indirect clamp are now automatically set to 2.0 as well.
Paint system

* Add unified color settings to brush menus.
* Add notifier on fill tool from drag and drop to refresh icons