Destroy sub-materials.

Sub-materials were created with `initializeMaterial` instead of the `Material` constructor so the `isDestroyed` and `destroy` methods were not on sub-material prototypes. It's important to destroy all materials that may create WebGL resources when finished.