A `Request` object is passed into the `Dispatcher`, and is responsible for identifying and
storing all the information about an HTTP request made to an application,  including status,
headers, and any GET, POST or PUT data, as well as any data returned from the
`Router`, after the `Request` object has been matched against a `Route`. Includes a property
accessor method (`__get()`) which allows any parameters returned from routing to be accessed as
properties of the `Request` object.