Refactor|MaterialArchive: Simplified MaterialArchive with a StringPool

The StringPool data structure does everything this class presently
needs, lets not complicate it unnecessarily.

Also fixed a version #0 deserialization bug which could result in
incorrect materials being assigned to surfaces.