Add support for subcommands

Add a new decorator, begin.subcommand(), that registers functions as
subcommands for the current program. Any registered subcommands will be
included in the command line processing performed by begins.