Removed unnecessary copying

This removes a bunch of unnecessary copies from the attribute and global computations. It knocks a further 28% off the runtime for David's test scene. By my reckoning, we're now down to 3% of the runtime we had a week or so ago, and _that_ runtime was orders of magnitude faster than the week or so before that. So we're definitely doing alright for optimising the scene generation.

I'm a little unsure as to whether or not [my Cortex pull request](https://github.com/ImageEngine/cortex/pull/344) is necessary given this new optimisation. It certainly still gives a boost to David's test scene, but not to one of my synthetic ones using only Gaffer nodes. I think this is down to unnecessary copies still being made in the `IEShaderAssignment` node - I'll mail separately about that, and then once that is addressed perhaps we can reassess the utility of the Cortex request.