Emit 'beforePresign' event on request.presign()

Allows S3 to add presign customizations so that they can be
presigned using this API. You can now presign S3 operations with
`s3.operation().presign(duration)`.