Create a `Signal` and cloneable `Exit` future that fires when `Signal` is fired or dropped. Used to coordinate exit between multiple event-loop threads.
```rust
let (signal, exit) = exit_future::signal();
});
signal.fire(); // also would fire on drop.
```