These mutable pointers present problems with ownership in
relation to proper copy-on-write for attributes. The simplest
solution is to just remove them and retrieve the layers from
`CustomData` when they are needed. This also removes the
complexity and redundancy of having to update the pointers
as the curves change. A similar change will apply to meshes
and point clouds.
One downside of this change is that it makes random access
with RNA slower. However, it's simple to just use the RNA
attribute API instead, which is unaffected. In this patch I
updated Cycles to do that.