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.