Allow multiple definitions of a command with a block

This allows "reopening" of a command so you can add more
subcommands. Fixes #144, in a roundabout way.
Don't display multiply-defined commands multiple times

When adding the feature to support reopening commands to add subcommands,
I didn't notice that the parent command was getting added to the help
output multiple times. Added a test case and fixed it.
Merge pull request #152 from johnl/reopening_commands

Allow multiple definitions of a command with a block