Robustly run binaries and tests after compilation

These were previously just run by executing the raw binary, but this didn't
ensure that any of the necessary paths were in the dylib search path for the
host platform.

This commit enhances the return type of `compile_targets` to have information
about the result of compilation, along with the ability to spawn correctly
configured processes.

This primarily fixes `cargo test` and `cargo run` whenever dynamic dependencies
are involved, but it also fixes the two commands whenever there's a native
dynamic dependency involved as well.
Don't match the output of the submodule test

Apparently really old versions of git ignore --quiet and print things anyway,
causing the test to fail on the linux buildbot.