Refactor: MaterialScheme now inherits from PathTreeT<MaterialManifest>

Rather than wrap a private PathTree instance, MaterialScheme now
uses private inheritance for the same purpose (marshaling access).