add CommanderNoArgs interface

Allows more convenient validation against unwanted extra args.

Before:

        func (c *myStruct) Execute(args []string) error {
            if len(args) > 0 {
                return errors.New("got unwanted extra args")
            }
        }

After:

        func (c *myStruct) Execute() error {
            // extra args are checked automatically before calling Execute()
        }
I think this could be more precise like "CommanderNoArgs is a Commander-like interface, with the exception that it does not allow any remaining positional arguments. An error with type ErrTooManyArgs will be returned by the Parse method of the Parser if such arguments are given.