Refactor backend classes to match preflight/postflight

From legacy forms `after_install`, `AfterInstall`, etc.
* abstract out `method_missing_message` to Cask::Utils
* provide `method_missing` coverage in pre/postflight blocks (fixes #7445)
* fix old-style rendering of Cask names as classnames in `method_missing` messages