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

Allows a plugin/adapter to be executed in the context of a request instance (rather than the global request object). Useful for things like setting headers for single requests (e.g. to prevent caching). Includes updated docs.