Added ArrayPlug class.

This is basically a CompoundPlug which uses an internal InputGenerator to create array elements on demand. I suspect that in the longer term we might want to ditch the InputGenerator and use ArrayPlugs everywhere we want dynamic inputs.
Added variable length coshader array support to RenderManShader.

Fixes #462.