Add `AbstractCliCommand` Class

## As a developer I can extend `AbstractCliCommand` to easily create and run cli commands

### Acceptance Criteria
1. synapse-base has `CliCommand` namespace
1. `CliCommand` namespace has `AbstractCliCommand` class
1. `AbstractCliCommand` can be extended by just returning the base command to be executed
1. `AbstractCliCommand` is fully tested

### Tasks
- None

### Additional Notes
- Stole this from api.commandsynter.com. It works really well for setting up and executing commands on the server
If this class is strictly for testing, the pattern we've been using would put it in the `Test\Synapse\CliCommand` namespace.