Save all debug information - including raw request data

Previous discussions in https://github.com/typhoeus/ethon/issues/63 and https://github.com/typhoeus/typhoeus/issues/247.

Uses the CURLOPT_DEBUGFUNCTION callback to save all debug info:
http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTDEBUGFUNCTION

Allows you to do this:
```ruby
easy = Ethon::Easy.new url: "example.com",
                       verbose: true,
                       followlocation: true,
                       headers: { "X-Test" => "hi" }
easy.perform
puts easy.request_headers
```

Output:
```
GET / HTTP/1.1
Host: example.com
Accept: */*
X-Test: hi

GET / HTTP/1.0
Host: example.iana.org
Accept: */*
X-Test: hi
```