Add port to endpoint if passed custom port

Closes issue #168.
Adds failing test case for conditional copy headers
Fixes issue with condition copy headers

`auth.canonicalizeHeaders` did not correctly sort headers,
which caused requests with `x-amz-copy-if-` headers to fail
with a signature error.
Release 0.7.1
Allow path style via major refactoring. Fixes #165.

Lots of changes to client creation:
 - Add new `style` option, which can be either `"virtualHosted"` (default, and the current behavior: "bucket.endpoint") or `"path"` (uses "endpoint/bucket").
 - Removed the `domain` option, since it was incoherent. What we used to call "domain," Amazon called "endpoint" (i.e. the term "endpoint" was misused).
 - `client.region` is now normalized to always exist, if no custom endpoint was passed, or to be `undefined` if it was.

Also:
- Tests converted to BDD style for easier nesting and repetition of tests.
- Tests clean up after themselves, in all buckets, better.
Add better bucket validation and auto style-switching.

Closes #173.
Release 0.8.0
Explain that we try to auto-switch styles.
Add passing tests for `signedURL` on filenames with spaces.

Closes #175.
More auth signing tests; closes #6.

This contains all of the tests from #6 except for the problematic one with multiple headers. We'll wait for someone to actually want that before adding it.

There is a minor functionality improvement: x-amz-date headers are now ignored, instead of breaking the request, and if you use the auth library directly, you can pass strings instead of `Date` instances for the `date` option.
Add section on knox-copy to Readme.md
Fix host/hostname confusion.

Introduced in 0.8.0, diagnosed in https://github.com/LearnBoost/knox/issues/66#issuecomment-18129542.
Release 0.8.1
Handle thrown exceptions in callbacks better.

Ensure that `cleanup` runs before the callback is invoked, to prevent for example a thrown exception in the callback preventing the cleanup from happening.
Release 0.8.2
Add a test for signedUrl with x-amz-acl. Closes #183.
Don't mess with incoming options objects.
Add "use strict" everywhere to try to find global leaks.
Release 0.8.3
Add s3-lister to Readme.md

Segmentio built a library to stream all the keys of a large s3 bucket.
Adding it to the readme for extra discovery.