Detect if we run on Linux. If so, dockerize Makefile targets that need access to
USB devices. If we run on anything else, attempt to execute natively.
This will enable non-Linux Unixes like macOS to run the chainboot target, given
they install the needed Ruby dependencies.
`rustup target add aarch64-unknown-none-softfloat` is now a thing.
It is no longer required to build rust-std on-demand with `xbuild`.
This reduces compile-times significantly.