Fix for displace node regression (reported on IRC by Sebastian Koenig):
Was adding a (0.5, 0.5) offset, even for zero displacement.
Add support for multiple interpolation modes on cycles image textures

All textures are sampled bi-linear currently with the exception of OSL there texture sampling is fixed and set to smart bi-cubic.

This patch adds user control to this setting.

Added:
- bits to DNA / RNA in the form of an enum for supporting multiple interpolations types
- changes to the image texture node drawing code ( add enum)
- to ImageManager (this needs to know to allocate second texture when interpolation type is different)
- to node compiler (pass on interpolation type)
- to device tex_alloc this also needs to get the concept of multiple interpolation types
- implementation for doing non interpolated lookup for cuda and cpu
- implementation where we pass this along to osl ( this makes OSL also do linear untill I add smartcubic to the interface / DNA/ RNA)

Reviewers: brecht, dingto

Reviewed By: brecht

CC: dingto, venomgfx

Differential Revision: https://developer.blender.org/D317
Cycles: Compile fix and some cleanup for the Image interpolation commit.
Drivers UI: Add explicit warnings about use of bpy.data and bpy.context in expressions

In order to combat the problem of users frequently trying to use inlined
bpy.data/bpy.context paths for data access in their driver expressions
and then finding/complaining that these don't update correctly, the UI
now flags these as the error conditions that they are (with suggestions
on how to fix this).

Also tweaked the "Add Variable" button to have more descriptive text about
what exactly variables are and why to use these, along with some other
visual tweaks (icons!).
Fix T39035: Cycles F-Modifier truncates end/beginning frame values for repetition

When the keyframes at either end of the source curve don't lie on exact frame boundaries,
this casued problems with the Cycles F-Modifier, as part of the cycle would get chopped
off.

This was caused by float -> integer truncation that was occurring, since one variable
was of the wrong type. The problem here wasn't discovered until now (thanks to gcc's
invalid-type warnings on printf's) as in standard usage, we can safely assume that all
keyframes are strictly on frame boundaries.
Minor changes to CMakeLists.txt to enable debug builds on VS2013.
Fix for finding LLVM and OSL debug libs.
Make CMake use Jack debug libraries when compiling a debug build
Cleanup some useless/unneeded #ifdefs for MSVC2013.
Fix for prevoius commit: accidentally changed a ifndef to ifdef.
Text Editor: Remove key binding for text/object conversion

This can freeze Blender if you accidentally press ctrl+m on a large
script, conversion from text to 3d objects is fairly special case,
restricting access to the menu only.
BLI Rect: utility function to transform a point using 2 rect's
Graph Editor: add lasso select for fcurves
Fix T39018: Duplicate entries for material/shader in AnimEditors

In many BI shader setups, the material which owns the nodetree is often itself
included as a node in that nodetree (i.e. to provide the base colour for that
mesh). This would often result in the material (and its subtree) getting included
in the dopesheet results twice.
Fix compile error using MSVC2008 + cmake
Code Cleanup for __HAIR__ defines.
Minor code cleanup.
Cycles: Option to Sample all Lights in the Branched Path integrator for indirect samples

This adds a new option "Sample All Lights" to the Sampling panel in Cycles (Branched Path). When enabled, Cycles will sample all the lights in the scene for the indirect samples, instead of randomly picking one. This is already happening for direct samples, now you can optionally enable it for indirect.

Example file and renders:
Blend file: http://www.pasteall.org/blend/27411
Random: http://www.pasteall.org/pic/show.php?id=68033
All: http://www.pasteall.org/pic/show.php?id=68034

Sampling all lights is a bit slower, but there is less variance, so it should help in situations with many lights.

Patch by myself with some tweaks by Brecht.
Differential Revision: https://developer.blender.org/D391
Fix for potential bug in copy-to-selected ui button operator: Return
value was mixing operator result with an int/boolean.
Revert changes to submodules

NEVER use `git commit .` or stage submodules. Leave it to platform maintainers!

See [1] where you'll find few hooks which would help you preventing
accidental commit of submodules.

[1] http://wiki.blender.org/index.php/User:Nazg-gul/DevTools#Git_hooks
Fix for proxy colorspace and prefetching