Use Promise instead of DOMFuture.  Reworked Zone interface