Add request.use() to allow plugins/adapters (e.g. to prevent caching)

Allows a plugin/adapter to be executed in the context or request. Useful for things like setting headers for all requests (e.g. to prevent caching)