Eliminate redundant get_userdata within a shading network.

Geometric (interpolated) parameters are retrieved by calls to
RendererServices::get_userdata, and are done so separately (and
potentially redundantly) for every shader in the group that requires the
same named variable. This is potentially very wasteful.

In this patch, we augment the group data with slots for every unique
userdata that may be queried by the shader group, and an array of
flags detailing whether each has yet been retrieved. This serves to
ensure that the expensive call to get_userdata is called at most once
per shader group invocation (rather than once per layer that references
it).