Merge #268
268: Add the libtock_runtime crate and platform switching. r=hudson-ayers a=jrvanwhy
This is the first `libtock_runtime` PR. It contains:
A. `Cargo.toml` for `libtock_runtime`
B. Automatic linker script identification.
The automatic linker script identification is based on `libtock-rs`'s current `build.rs` (in the root of the repository), but makes the following improvements:
A. Better supports out-of-tree platforms by adding a cargo feature to disable linker script identification. `libtock-rs`'s build.rs always emits a warning of the PLATFORM variable is not specified.
B. Improves error handling, particularly around builds in paths we cannot support (e.g. if `cargo` is executed in a directory whose name contains a newline character).
C. Moves the layout file location into `cargo`'s `OUT_DIR`, which is the only directory build scripts are *supposed* to modify.
D. Removes support for the `platform` file to select a platform. `libtock-rs` looked for a `platform` file in its own source to identify the platform it is run in -- I'm not really sure how this was supposed to be used.
Co-authored-by: Johnathan Van Why <jrvanwhy@google.com>