Supports:
- Creating nurseries
- adding awaitables to a nursery (coroutines or futures)
- setting a timeout on a nursery
- by default, an error in a task will bubble at top level. There is an option to ignore exceptions on particular tasks with the `bubble` parameter of `start_soon`
- by default, a nursery will wait for all its tasks to terminate, except if a task is marked as `master`. A master task termination will cause the the nursery to cancel (with all pending tasks)
This is tested supposed to work on python >= 3.5 (tested up to 3.7).