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.
Merge pull request #4 from hughsk/custom-materials

Custom Material Types/Parameters