tests: Fixed test-timeout.js events unit test

The callback is called twice and the second time a "ECONNRESET" error is
passed which previously broke the test.
Added Travis CI configuration file
Merge pull request #683 from Turbo87/travis-ci

Travis CI support
lib: Added optional() function

This works in the same way as required() but does not throw errors
if the module was not found.
dependencies: Set `aws-sign` as optional dependency
dependencies: Set `hawk` as optional dependency
dependencies: Set `oauth-sign` as optional dependency
dependencies: Set `http-signature` as optional dependency
dependencies: Set `tunnel-agent` as optional dependency
dependencies: Set `form-data` as optional dependency
dependencies: Set `tough-cookie` as optional dependency
Added .npmignore file

Ignore the tests folder when packaging and publishing. The tests folder
is only used during development and doesn't have to be packaged in the
final tarball. This reduces the package size by another 148 kB.
TravisCI: Test with and without optional dependencies
Merge pull request #682 from Turbo87/optionals

Optional dependencies
Merge in charges from upstream and make socks5 clients optional dependencies