Changing shutdown semantics.

- When reactor's run() stops, outstanding handlers are
  removed.
- The shutdown() function is renamed to remove_handlers().
Implement reactor time slicing.

- Add a new overload of run() that takes a specified duration.
- Rewrite previous run() in terms of new overload.