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.
tap: change the way to determine tap name unambiguously and the on-disk representation

This commit also supports "-" and "_" in names of user and repository.