Move FactoryDescriptorsImpl into public package and check the inputs heavily
since end users can now use it directly.  Remove all other implementations,
including anonymous inner classes