Material auto binding changes

- Changed and simplified handling of custom material auto bindings by adding a new abstract class RenderState::AutoBindingResolver.
- Games can now simply extend this class and implement the one virtual function in it (resolveAutoBinding) to provide support for custom material auto bindings.
- Changed a common assertion/crash when running with an unset MaterialParameter to a warning. Unfortunately this is a potential per-draw-call warning, but a future change will provide a fix for all per-draw-call logging.