This patch adds vector displacement to Cycles, which allows to displace meshes
not only along the vertex normal, but also in the tangent plane.
To support that, the displacement socket of the Shader output is now a vector
socket, but still behaves like the old displacement as long as "Vector" is not
selected as the displacement type in the mesh options.
When Vector is selected, the Z component of the displacement output is used
to displace along the normal, the X axis to displace along the UV Map tangent
and the Y axis along the bitangent (perpendicular to normal and tangent).
Note that unlike the regular displacement options, Vector displacement
does not apply the multiplication with 0.1, which makes it easier to use baked