Switch from mustWaitFor to markPending (#1487)

Previously the call to `Invoker.current.removeOutstandingCallbacks`
happened synchronously when the callback was called. After the change to
use `testHandle.mustWaitFor(Future)` the callback would no longer be
called in a `FakeAsync` zone that does not have any further async
progression.

Avoid the complication with a more forgiving non-Future API which
abstracts the trickiness around zones (other than that the
`markPending` call must be in the test zone, which is the case for
all APIs) and errors.

6 files changed