The new shader parameter system

Closes #19
This name could be better as "ErrorUnusedParameter", and the following as "ErrorExtraParameter"