Material clone cleanup

Properly deep clone Materials, and also tweak the interface for cloning
objects.  Clean up several of the samples and add cloning support for
Scene.