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 <tcrawford@system76.com>
4 jobs for no-std in 1 minute and 44 seconds (queued for 7 seconds)
latest
Status Name Job ID Coverage
  Test
passed build:linux #33982

00:01:44

passed build:no_std #33985

00:00:47

passed build:redox #33983

00:00:50

passed build:wasm32 #33984

00:01:18