Use Tokio Runtime rather than Reactor in Manager
Use Tokio Runtime rather than Reactor in Manager

`tokio-core` is deprecated, and the `Runtime` is the way to go.

The `tokio-core` `Reactor` allowed you to run futures only on the same
thread (spawned futures did not have to implement `Send`), whereas
`Runtime` uses a threadpool by default. This means we need to wrap
`ManagerState` in an `Arc` instead of an `Rc` so it can be safely
shared across threads.

(As we start moving other functionality over to futures, we'll likely
need to make additional changes of that nature.)

This also means we'll have a few extra threads around, but as we start
moving more and more things over to futures, they'll be well-utilized.

The `CtlGateway` still makes use of `tokio-core` for now, pending a
more in-depth refactoring of that code, but that's all very
self-contained and stable right now. Getting the `Manager` moved
forward unlocks a lot of upcoming changes to better parallelize its
operations.

Signed-off-by: Christopher Maier <b4598f17a90ef80817bae8ad6c37249740caafb4@chef.io>

habitat-sh/habitat,habitat-sh/habitat,habitat-sh/habitat,habitat-sh/habitat,habitat-sh/habitat,rsertelon/habitat,habitat-sh/habitat,rsertelon/habitat,rsertelon/habitat,habitat-sh/habitat,rsertelon/habitat,rsertelon/habitat,rsertelon/habitat,habitat-sh/habitat,rsertelon/habitat