A few Fixes and improvements. (Temp file, Header setting/output, JSON encodeing)

This pull contains a number of improvements:
* A flag allowing using `php://memory` OR a File in the PHP Temp directory for the Handle used when capturing Headers.
* Support for PECL-style Header output (multi-dimensional associative arrays).
* Support for setting a group of headers.
* Support for setting Headers in the PECL-style (multi-dimensional associative arrays).
* Support for automatic JSON encoding of the POST contents is the 'Content-Type' is application/json.
@zborboa-google - This is confusing.  This is the only place in the class where the `$curl->url` and the actual `CURLOPT_URL` are set to different things.  I can make this match, but I had assumed it was in error.

If this is not an error, what is the reasoning here?