Pull common stdlib checking code into a method
Decouple IncompatibleCxxStdlibs from its superclass

This exception is never used outside of the CxxStdlib class, so we don't
need the Homebrew::InstallationError superclass.
Rescue only DownloadError
Use a set to track failed downloads