Initial version of AArch64 support.

There are still some FIXMEs in the code (around thread locals and stack protection) but rustc already passes most of the tests on AArch64:
summary of 41 test runs: 8265 passed; 1 failed; 542 ignored; 0 measured.

Needs #19790 and https://github.com/rust-lang/compiler-rt/pull/5 .
The short answer is no. A bit longer elaboration is: when I started working on the AArch64 support, libgreen was still there and I had to write this. Then, when libgreen was removed, I tried to remove this as well but found that `mk/rt.mk` is still referencing `_context.S` and decided to keep the file not to break the build. As did all architectures under `src/rt/arch`.

Personally, I'd do this cleanup in a separate patch, which would change `rt.mk` and remove all `_context.S` sources from all architectures. But if you request it, I can try including it into the current one.