Allow customizing {Publish,Send}Request context

There are times when the ability to tinker with `IPublishContext` and `ISendContext` is indspensable: like when transparently passing contextual information between endpoints jointly servicing some domain command. Headers are a perfect solution, but injecting values there was only possible when doing `.Publish`.

These changes extend this possibility to `.PublishRequest` and `.SendRequest`, together with two simple tests covering this functionality.

(Code should be fully backwards compatible, as passing a `contextCallback` is entirely optional.)