Improve no-std config

Replace the `no_std` feature with `std`, and have that set by default.
Allows building for a `no_std` target by disabling deault features.

Make the SDL dependencies optional, and only use them if either the
`sdl` or `bundled` feature is used. Hosted targets that want to use
SDL2 must now select one of these features.

Add a `no_std` target (Cortex-M0) to CI to ensure it continues to build.

Additionally, made sure it builds for UEFI target.

    cargo +nightly build --no-default-features \
        --target x86_64-unknown-uefi -Z build-std=core,alloc

Signed-off-by: Tim Crawford <>
4 jobs for no-std in 2 minutes and 10 seconds (queued for 2 seconds)
Name Stage Failure
build:redox Test

Some errors have detailed explanations: E0432, E0658.
For more information about an error, try `rustc --explain E0432`.
error: could not compile `redox_syscall`

To learn more, run the command again with --verbose.
redoxer cargo: exit status: 101
Cleaning up project directory and file based variables
ERROR: Job failed: exit code 1