Refactor|Materials: Const-correctness and other minor refactorings
Refactor|Materials|MaterialArchive: Addressed design issue with MaterialArchive population

MaterialArchive no longer assumes knowledge about how a/the Materials
collection generates material ids. Added Materials::populateArchive()
which uses MaterialArchive::addRecord() to fill the archive with
records for it's materials.

Note that de::MaterialArchive's constructor no longer automatically
populates the archive using the global Materials collection. This
logic is now instead implemented by the Doomsday public API function
MaterialArchive_New()