UI: Improved layout for Cycles Volume Sampling panel.
Cycles: Direct multi light sampling in the Branched Path Integrator is optional now.
Disabling this can improve performance, when we need a lot of AA Samples anyway, to clear up the render.

Simple example .blend: http://www.pasteall.org/blend/27582

Differential Revision: https://developer.blender.org/D392
Code cleanup: modifier_skin_customdata_ensure was a bad level call
Code cleanup: naming conventions
EditMesh: Support contracting the selection as well as extending

This allows for holding ctrl while switching from face->edge modes to
select an edge-ring.
Fix T39210: Grid Fill is generating mesh that's inconsistent with selected edge loops

Issue was in BLI's rotation_between_vecs_to_quat(), which did not handled correctly cases where both vectors are colinear.

Patch by Campbell Barton and me.

Issue originaly tracked down by Yan Shi, many thanks!
Fix T39215: Shortest path error
Fix T39208: Adding scene to another scene's VSE causes audio and video to be unsynchronized

Audio of 'linked' scene has to be offset by the startframe of that scene, else it behaves as if 'linked' scene always started at frame 1...
Code cleanup: style
Python API: add Vector.orthogonal() method
Fix T31598: smart UV failed for small faces

previous fixes only tweaked epsilon, but logic for skipping zero area
boxes was still wrong.
Fix own bug reported on irc by Venomgfx, missing value slider in color
pickers.
Code cleanup: comments and typos
UI: Add theme color for viewport overlay

Was using wire or black in many places, this color is used for cursor,
camera guides, transform helper lines. So its possible to have a dark
background with light overlay color.

Patch D331 by Brita, with some edits.
KDTree: deprecate 'normal' argument

Normals for each kdtree node were allocated but never used,
and search args only use in particles/boids code.
Fix T39228 Gamma/lift/gain are burned out in the circular color pickers
and value/lightness slider stops midway.

Issue here is manyfold:

Color wheel does not support properties with different soft min/max
values than 1.0 (which after experimenting a little I left as is), and
also color management is completely destroying the mapping between the
value slider and the RNA property value range. To solve this I have
disabled color management by setting the property to gamma corrected
(only in RNA, Sequence editor coders please check!), otherwise it will
just become a big mess of tracking where color comes from and what kind
of color transforms it needs in different color pickers (if property has
non normalized range etc). HSL is not really meant to represent colors
outside a normalized space so I have disabled setting lightness above
1.0 in this model.

This will work, however it is hacking a color picker to do something
other than what it is supposed to do: pick a color from the screen
accurately. Which means normalized values always. The non normalized
colors picked for lift/gain/gamma through the pickers do not correspond
to any accurate colors; they are rather a user friendly way to 'sort of'
choose a color and a gamma with an indication of maximum value.

I think that lift/gamma/gain nodes need a dedicated widget for this
(besides it is quite clear that some options are written for that use
case) -or- a separate gamma multiplier for the picked color (which
should itself be in a normalized space)
Follow up to previous commit:

Make HSL wheel useful in compositing.

In HSL, 0.5 lightness corresponds to most vibrant colors so make that
default for locked wheels (previous value of 1.0 just made it white).
Also, unlock the wheel for both very bright and very dark colors.
Code cleanup: jitter, use 2d float array
UI: bypass text clipping on buttons with no text
OSX/cmake/bullet: fix ambigoius compiler ID and make deoptimize fix a bit stricter to reduce speed penalty