Looks like `cargo test` is now trying to test too many files due to
rust-lang/cargo#4750 so add a clause to the wrapper to ignore the bogus ones for
now
Rebase of #610 and also move emscripten up much higher in the hierarchy to
ensure that it doesn't have too much of a ripple effect on other platforms.
This involved moving down a good number of definitions, but hopefully was done
with care to not break anything!