(CFACT-17) Implement a HTTP client for EC2/GCE facts.

Implementing a simple wrapper around libcurl for performing HTTP
requests.

The HTTP client should be enough for cfacter, but more work will need to
be done to support requirements for a native agent.

EC2 and GCE facts should output an info message iff:
  - They would normally be in the output (i.e. they meet the confines)
  - USE_CURL is not defined

Including a file in the http directory without USE_CURL defined will
result in build errors, so guard the includes with an #ifdef.
Because of the way pointer aliasing works in C++, I think you could actually make the function signature take context* ptr and it would work fine. Not sure if it's an improvement though, because it hides the fact that there's not any type safety here.