add a request class

the request classes parses the data into a request line, a set of
headers, and a body. It has certain methods that are consistent with the
behavior of a request to provide easier interaction between objects.
(Will probalby refactor each part of the request into it's own object
in the future as well)
IO Exception Trickle... up?