The new shader parameter system

Closes #19
Could these be `debug_assert!(0 == ...)`?