Refactor

* Combined ConstructCommand() and ExecuteCommand()
* Alphabetized imports
* Simplified multiple base functions
* Refactored PerforceAutoCheckout() to check settings before any other checks
* Removed whitespace