Implemented coshaderType annotations for RenderManShaders 

These allow a shader writer to limit what sort of coshaders can be connected into a particular coshader parameter. Coshaders are given types using the "coshaderType" annotation. Coshader parameters specify the type they will accept using a "parameterName.coshaderType" annotation which must match the value specified by a candidate input coshader.

This pull request also contains the content of #463, as that hasn't been merged yet.