Add support for fully configurable and dynamic S3 object keys

Hi,

Thanks in advance for the S3 plugin!
We're using it in production environment for several months and it's working like a charm.

In this pull request, I propose a support for configurable, dynamic S3 object keys (or paths).
With it, we can freely change the format of S3 object keys according to variables like:

* path
* time_slice
* index (former `sequencial_numer` in README.rdoc)

E.g., if we had the configuration:

```
 s3_object_key_format {path}/events/ts={time_slice}/events_{index}.{file_extension}
 path log
 time_slice_format %Y%m%d-%H
```

You get objects with keys like:

```
 log/events/ts=20130111-22/events_0.gz
 log/events/ts=20130111-23/events_0.gz
 log/events/ts=20130111-23/events_1.gz
 log/events/ts=20130112-00/events_0.gz
```

In this specific example, I have intended to use it from Apache Hive, as an EXTERNAL TABLE paritioned by `ts`. It was not possible until now.

Changes in this pull request is backward compatible.
That is, by default it doesn't change anything. It comes into effect if and only if you configured `s3_object_key_format`.