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
Ah, that makes perfect sense. Thanks.