Cycles Hair: refactoring to support generic attributes for hair curves. There
should be no functional changes yet. UV, tangent and intercept are now stored
as attributes, with the intention to add more like multiple uv's, vertex
colors, generated coordinates and motion vectors later.

Things got a bit messy due to having both triangle and curve data in the same
mesh data structure, which also gives us two sets of attributes. This will get
cleaned up when we split the mesh class.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@53527 954f8c5b-7b00-dc11-b283-0030488c597c
Cycles Hair: refactoring to store curves with the index of the first key and the
number of keys in the curve, rather than curve segments with the indices of two
keys. ShaderData.segment now stores the segment number in the curve.

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@53528 954f8c5b-7b00-dc11-b283-0030488c597c