Fix Provides; Refactoring

I'm pretty happy with the state of this at this point. It's not ideal,
and I'm certainly not solving all the problems I wanted to, but I'm
making tangible progress.

Still to do includes refactoring into an event system to better suit
async service starting and dependency resolution.
2 jobs for dependencies in 2 minutes and 39 seconds (queued for 3 seconds)
Status Job ID Name Coverage
  Build
failed #8156
allowed to fail
build:linux:cargo

00:01:34

passed #8157
build:redox:cargo

00:02:38

 
Name Stage Failure
failed
build:linux:cargo Build

error: aborting due to 6 previous errors

For more information about this error, try `rustc --explain E0308`.
error: Could not compile `init`.

Caused by:
process didn't exit successfully: `rustc --edition=2018 --crate-name init src/main.rs --color never --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=ce78defb42f426c0 -C extra-filename=-ce78defb42f426c0 --out-dir /builds/redox-os/init/target/debug/deps -C incremental=/builds/redox-os/init/target/debug/incremental -L dependency=/builds/redox-os/init/target/debug/deps --extern failure=/builds/redox-os/init/target/debug/deps/libfailure-5757a54a3979cc03.rlib --extern generational_arena=/builds/redox-os/init/target/debug/deps/libgenerational_arena-1a0f984527ea6b0e.rlib --extern log=/builds/redox-os/init/target/debug/deps/liblog-f7a6d80908936a04.rlib --extern syscall=/builds/redox-os/init/target/debug/deps/libsyscall-f418cf0c4ea7ecf7.rlib --extern serde=/builds/redox-os/init/target/debug/deps/libserde-6f26f72be5165103.rlib --extern serde_derive=/builds/redox-os/init/target/debug/deps/libserde_derive-bd2bb36eb0d16e48.so --extern simple_logger=/builds/redox-os/init/target/debug/deps/libsimple_logger-b4aa20fc4c737b70.rlib --extern toml=/builds/redox-os/init/target/debug/deps/libtoml-17b32876af0e5870.rlib -L native=/builds/redox-os/init/target/debug/build/backtrace-sys-3117221cc2a253dc/out` (exit code: 1)
ERROR: Job failed: exit code 1