Formula: provide compiler failure collections

`needs` allows formulae to specify dependencies on cross-compiler
dependencies, allowing multiple failures to be specified in a single
statement. For instance, `needs :cxx11` adds seven compiler failures.

Closes #22912.
mpd: needs :cxx11
mpd: fix caveat indentation
CompilerFailure: don't mutate compiler hashes

Fixes #28357.
nvm 0.4.0

Closes #28356.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
lzip: add test

Closes #28359.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
gle: tweak cairo dependency

Fixes #28349.
szl: 10.9 fixes

Closes #27280.
bulk_extractor: add test

Closes #28362.

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
SDL2 2.0.3
sdl2: update 2.0.3 bottle.

Closes #28369.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
nmap 6.45
nmap: add 6.45 bottle.

Closes #28368.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
pass 1.5
pass: add 1.5 bottle.

Closes #28370.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
gambit-scheme: add 4.7.2 bottle.
tinyscheme: add 1.40 bottle.
pcre 8.35
pcre: update 8.35 bottle.
readall: read formulae that aren't tapped.

This will allow the reading and checking of formulae that mirror
Homebrew core formulae (e.g. `git` in a tap) and, with the previous exit
code changes, is a reasonable check for "are all the formulae in taps
updated to the latest core DSL".

Closes #28328.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>