message: refactor(rt): replace spawn and run with wrapped functions
diff: pub use futures::{Future, Stream};
  pub use futures::future::{lazy, poll_fn};
  -pub use tokio::{run, spawn};
  +use tokio;
  +
  +use self::inner::Spawn;
  +
  +/// Spawns a future on the default executor.
  +///
  +/// # Panics
  +///
  +/// This function will panic if the default executor is not set.
  +///
  +/// # Note
  +///
  +/// The `Spawn` return type is not currently meant for anything other than
  +/// to reserve adding new trait implementations to it later. It can be
  +/// ignored for now.
  +pub fn spawn<F>(f: F) -> Spawn
  +where
  + F: Future<Item=(), Error=()> + Send + 'static,
  +{
  + tokio::spawn(f);
  + Spawn {
  + _inner: (),
  + }
  +}
  +
  +/// Start the Tokio runtime using the supplied future to bootstrap execution.
  +///
  +/// # Example
  +///
  +/// See the [server documentation](::server) for an example of its usage.
  +pub fn run<F>(f: F)
  +where
  + F: Future<Item=(), Error=()> + Send + 'static
  +{
  + tokio::run(f);
  +}
  +
  +// Make the `Spawn` type an unnameable, so we can add
  +// methods or trait impls to it later without a breaking change.
  +mod inner {
  + #[allow(missing_debug_implementations)]
  + pub struct Spawn {
  + pub(super) _inner: (),
  + }
  +}
  