Add request object

This is essentially a bag of everything relating to the request.

Fixes #552.
Should this default to `GET`?