Modify CommandDispatcher api to use CommandResponse abstraction.
This allows users of the api to distiguish between sender vs receiver failures.