add `command_classes` method
recast help/usage with `command_classes`

invoking new `command_name` method from the base class when the
command verb string is needed
recast `commands` method using `command_classes`

no longer a need for hardcoding constants to remove (such as
`:ISSUES_URL`), because `command_classes` checks for a `run`
method.
simplify `lookup_command`

by `zip`ping `commands` with `command_classes`
create "internal use" command verbs

- based on abstract class `Cask::CLI::InternalUseBase`
- interal-use class file names follow `internal_<verb>.rb`, but the "internal" is dropped for the CLI
- internal-use verbs start with underscore at CLI
- internal-use verbs are invisible in the usage document
add `_dump` internal-use verb
add `_help` internal command
refactor variable name max_command_len
add blank line to NullCommand message
whitespace