Custom Material Types/Parameters

This adds two optional parameters to both `Texture` and `Texture.loadTexture`: `materialType` and `materialParams`.

`materialType` is for passing through a custom material, which opens up the possibility for custom block shaders. `materialParams` allows you to pass more parameters to each new material's constructor, e.g. `color` as seen in the demo. Or [even things like this](http://www.youtube.com/watch?v=JpksyojwqzE).