Middleware are a special type of high level function that that augment the
behavior of transferring a command and delegate to a "next" handler. Middleware
functions accept an ``Aws\CommandInterface`` and a
``Psr\Http\Message\RequestInterface`` and return a promise that is fulfilled
with an ``Aws\ResultInterface`` or rejected with an
``Aws\Exception\AwsException`` reason.
