Get rid of legacy dispatcher.

Update  #852 to not use legacy_dispatcher.
Although `sync_perform` works because the deferred involved is synchronous, I would prefer using `twisted.perform` and getting result via `successResultOf` to emphasize that intent is deferred-based.