Implemented full command-line argument parsing and a CliCommand base class to be used for most CLI tasks