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 4 minutes (queued for 1 second)