ensure failed binary installs fall back to compilation
ensure failed binary installs fall back to compilation

This is a complicated change.

ruby-build sets `-E` and traps ERR so that any simple error during the
execution of the definition file causes an immediate exit. (The trap
handler exits)

However, once we added `try_install_distro && return`, the `&&` prevents
the trap from catching *anywhere* in the binary-install flow (which
includes the recursive invocation of install_package). This means that
download failures, checksum failures or untar failures don't cause the
binary-installation flow to halt. So, in order for the
try_install_distro to know the final result of the binary installation,
we need to actually return statuses back up the stack instead of relying
on `-E` and the trap.

(Especially since even if we *did* trap, we wouldn't want to exit since
we want to fallback to standard compilation)

pongstr/node-build,brigade/node-build,OiNutter/node-build,nodenv/node-build