Provide machinery to use this framework without globals.

Having global shared state is always a bad thing™. So we allow the creation of individual instances of streaming clients, each with their own associated AWS.S3 instance. The new code looks something like:

```javascript
var client = require('s3-upload-stream')(AWS.S3());
var stream = client.upload({
  bucket: "...",
  key: "..."
})
```

Backwards compatibility is also shoehorned so those who are using the library can continue to do so just as they were before.

Version bump accordingly.