Added start of tcp packet sending implementation, split up http and tcp initialisation into different classes.

Tcp implementation is extremely buggy and mostly un-tested.

The current state of the HttpRequest and TcpPacket classes is a mess. I
am going to have different objects for each request type, but came
across an issue that can be solved once I have the tcp implementation
working. For now, the classes are just a different place to put
request-specific methods.