Implement a base command class.

The base command class defines two methods that all concrete command
classes need to implement:

- execute - performs the command operation
- isValid - returns a boolean indicating whether the command parameters
            are valid or not

It also provides a helper method for commands to output their results.
Implement a command factory class.

The factory creates particular command instances based on a given
command line. It takes care of injecting all dependencies to the
concrete command class.
Implement the application main skeleton.

The application is a simple REPL where commands are created by
passing the text a user inputs on the command line to a factory
instance.
Implement the quit command.

When the user inputs the ``quit`` command, the application terminates.