Refactored S3 using AWS library and update with new filer API

Let's use real errors, so you get stacks and the like:

```js
return callback(new Error('...'));
```

We should do that in all our providers, if you want to go fix that in other places that are wrong too, sometime.