Add Client class, which wraps socket functionality

Wrap the functionality of creating and connecting to a server and writing and
reading data. Create a class called Client to do this. There is no change in
functionality - it still writes the first header, reads the response, and exits.

Pull request created for conversation, because I don't think you get notified for new branches or pushes.
Should we set error to 0 initially?