Add request object

This is essentially a bag of everything relating to the request.

Fixes #552.
Does PSR-7 mean that two strings with the same value, but different case are different methods?