Made InputGenerator compatible with CompoundPlug parents.

Previously it could only generate plugs directly on Nodes.
Fixed CompoundPlug default name.
Fixed InputGenerator for plug prototypes with numeric suffixes.

Also fixed bug which could cause plugs to be repeated in the inputs array if the InputGenerator was constructed from a childAdded() slot.
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.
Tweaked RenderManShader coshader array element naming.

The element names are now derived from the parameter name, and are sufficed with indices starting from 0 rather than 1.
Added documentation recommending numeric indexing for ArrayPlug.

I'm not particularly happy with the way the element plug naming works right now, but until we have further use cases to inform any decision making I'd like to leave it as-is. The documentation is intended to encourage users not to become dependent upon the existing naming scheme.
Merge pull request #467 from johnhaddon/variableLengthCoshaderArrays

Variable length coshader arrays