Introduce some unit tests

The tests cover some basic functionality of the library:

- Literal arguments
- Partial application (literal and keyword arguments)
- Subcommands (including subcommand hierarchies)