This class wraps zones for delegation.
When forwarding to parent zones one can't just invoke the parent zone's
exposed functions (like Zone.run), but one needs to provide more
information (like the zone the run
was initiated). Zone callbacks thus
receive more information including this ZoneDelegate class. When delegating
to the parent zone one should go through the given instance instead of
directly invoking the parent zone.