Get request details from ObjectStream, not args

I'm going to need request headers for some things, too. Sending all four
components of a request via command line args in main felt wrong. So
instead, the server will send the components via an Object Stream.

ArgsParser (nee Parser) now only collects the root directory being
served.

RequestDataCollector is responsible for collecting the request
components from the ObjectStream. It is instantiated with an
"ObjectExchangeStream", which is a simple wrapper around
ObjectInputStream. This allows for easier testing with a
MockExchangeStream.
Partial Response Builder expects HashMap headers

The app is receiving request headers as a HashMap object, not a
stringified version of them.
Dispatcher routes Partial Content requests