Add alias support to subcommands

Based on David Fraser's work, refs #4.
Cleanup alias code; add some simple tests
Add basic support for aliases

Add basic support for command aliases using a 'alias=...' arg to the
@app.cmd() decorator. Both single strings and lists/tuples of strings
are accepted.

Based on work by David Fraser (davidfraser on Github) and James Rowe
(JNRowe on Gihub). Closes issue #4 and issue #10.