Added support for setting default commands

I ran into a situation where I needed my program to just launch
something with no subcommand, but also have a set of subcommands to
interact with data and a running daemon. All bases should be covered
here (tests, help text, etc...).