Allow passing of Repository object into XCommand::getInstance() to share the repository's global configs, options and command arguments with the XCommand

This commit removes all CommandFactory logic and functionality
Fully qualified use statements throughout
Changing access back to public, must have been accidental
Adding Repository tests for add, remove and get methods for globals
Fixing syntax bug which likely resulted from conflict resolution
Added tests for repository getter & setter in object class
constructor test for BaseCommand class