Command.action functions should have the Command as this, not the parent.

Without this the current Command is not easily accessible, while the parent (the current this) is still easily accessible as this.parent.  For example trying to command.help() is hard without this.

    program
        .command("do")
        .action(function (opts) {
            if (!ok(opts.secret))
                this.help();
        })