Initial Testing

This is just an example of how we can add tests to the project. I pulled the main method out of ocelot.cpp and created an `int ocelot_main(int args, char ** argv)` method to replace it. The default target is set to `ocelot_server` and builds libocelot as a dependency :).

If you look at the targets, `ocelot_server` only adds the main.cpp source file, and `ocelot_tests` uses test_runner.cpp and all code files under the test directory.

Currently, I duplicated a lot of the code in `site_comms.cpp` and added the http request bits (which is essentially the `boost::asio` synchronous http client example) into `http_client.h`. Now, we can do request testing with valid or invalid urls against a tracker running in a different thread. Not the best solution by any means, but it's better than no testing at all.

I also updated the CMakeLists.txt to add testing as an optional target which is dependent on google mock. I added instructions the the README.md about what's additionally required to run the test suite.