[PLAT-4947] make add() throw exception, add component factories

Added one enhancement after speaking with Tim and Jon. Calling add() will now throw an UnsupportedOperationException because we have a chicken and egg of not having a scheme/unique id on the new document before calling add().
So the caller will either have to hang on to a reference to the delegate and use that to insert a document, or they can use a public convenience method that I added to the new masters that takes scheme as an argument along with the new document. This convenience function (like register() and deregister() is not part of the Master interface, so a reference to the actual concrete type will be necessary. The associated component factories register both against the generic Master interface and against the specific concrete types for this reason.