refactor(queryDirective): same data storage and events as commandDirective

BREAKING CHANGE:

- QueryController#reply replaces #data and #error
- query[on-reply] replaces query[on-data]
- On error, existing query data is no longer kept in the controller
feat(cqrsHttp): resolve commands and queries with response data (instead of the whole response)

We need to avoid http-specific handlers on command/query level. Data that cannot be extracted from the response data (e.g. a header) should be handled in the http layer (e.g. by intercepting or by changing the response data on the server).