When casks are unreadable (e.g. have invalid syntax, the cask file
cannot be found) then it's not been possible to uninstall them, list
them or perform any operation which iterates through all casks.
Handle these various cases by falling back to creating a `Cask::Cask`
object using just the name/token and latest installed version on disk.
This provides enough functionality to be able to verbosely list these
casks, not error on listing and, most importantly, uninstall/reinstall
them.
Fixes https://github.com/Homebrew/homebrew-cask/issues/62223
Add a new method for the two places we're checking if we have any
casks installed. This is much more performance and user friendly than
attempting to load every cask.
Fixes#13027