Checking for SSL fault on connection

If the server on the endpoint does not support SSL correctly, a response.client object may not be available. Check before reading properties from response.client.
Added dependency badge for README file;

I would like to add VersionEye dependency badge, which shows a current state of dependencies and when user clicks on badge, then he/she will see an additional metadata, that doesnt exists on npmjs page, for example previous versions, release cycle and  sub-dependencies.
Added support for HTTP_PROXY and HTTPS_PROXY environment variables, if the proxy option isn't already set.
Won't use HTTP(S)_PROXY env var if proxy explicitly set to null.
Documented tough-cookie installation.
Correct repository url

It's https:// instead, though it would automatically redirect.
package.json: use OSI-style license name

This way, it'll link to the actual license file properly on the npm website.

Approved by @mikeal via SMS
Swap mime module.
Make package.json so node .8 understands it.
Add some additional hacks to work in the browser.
Merge pull request #943 from eiriksm/new-mime

New mime module
Add some code comments about why we do the extra checks.
Merge pull request #944 from eiriksm/browserify-changes

Make request work with browserify
defaults: merge headers
prefer late return statement
Added support for manual querystring in form option

Enables greater flexibility in setting the form for a post method.
Objects do not accept duplicate keys
Updated README
Merge pull request #949 from charlespwd/master

Manually enter querystring in form option
[PATCH v2] Add support for gzip content decoding

Support decoding of the gzip Content-Encoding in responses using the
zlib module to decode the response before piping it through the request
object (and therefore before user-connected pipes or body parsing).

Add the boolean option `gzip` to allow users to explicitly
request decoding of supported response content and inclusion of
appropriate content negotiation headers, if unspecified.

This commit favors backwards-compatibility over the increased
performance that transparent compression could provide, although it is
hoped that a future backwards-incompatible version can make transparent
compression the default.

Some major tradeoffs of transparent compression are:

- It may trigger changes in server behavior and performance (for better
  or worse) that are unexpected, either due to buggy servers or
  intermediate network hardware.
- The compression is not fully transparent as users who attach to the
  `data` event of the response (rather than the `data` event of
  `request`) will get gzipped data rather than uncompressed data.
+ It is likely a big win for most users (both current and future) who
  would otherwise be unaware or unable to spend the time to implement
  content negotiation and decoding.  Especially given the prevalence of
  highly-compressible text content (e.g. JSON and XML) and widespread
  server support for gzip.

Changes since v1:
- Rename `decodeContent` option to `gzip` to match option name in 3.0

Signed-off-by: Kevin Locke <kevin@kevinlocke.name>
Adding support to client certificate with proxy use case