- Allow RapidJSON to be downloaded at build time to support binary sysroots that don't have it
- Support linkers that require explicit -latomic flag
- Don't build protobuf binaries, we only need the library.
- Copy kernel headers so we can build when sysroots don't have latest kernel headers
With these changes, cross compiling becomes a trivial use of the more cmake standardised method of just specifying your toolchain file. It avoids the need to build for host first and avoids the need for a chroot environment (though you can still use that).