Add request object

This is essentially a bag of everything relating to the request.

Fixes #552.