Refactor: Moved MaterialVariantSpec into namespace de

Plus various other minor cleanup refactorings.
Cleanup|MaterialVariant: Added implicit MaterialVariant => material_t indirection
Cleanup
Refactor|Materials: Create material system subspace schemes outside this class

New subspaces can now be created dynamically, so there is no need
to do so from within de::Materials.

Also removed 'Diffuse' from Rend_MapSurfaceDiffuseMaterialSpec()
(erroneous clarification).
Fixed|GCC: Further qualified type of Materials::Instance::groups

GCC does not automatically make the symbols of the outer class/type
visible to types internal to said outer class/type.
Cleanup