completion script cleanup and subcommand support

While the framework is less general,
it should run faster and be easier to extend
improve readabilty of default help formatter code
version bump