Extract an interface for EtlKey
Teach EtlKey and CamusWrapper to to carry partition information as a map

CamusWrapper can collect data from Records in the MessageDecoder. This
will be passed on to EtlKey, which will be passed to the Partitioner.
Extract a Partitioner interface and the current implemention as the DefaultPartitioner

This will allow an arbitrary partition scheme based on data present in the record.
Not just timestamp
Added the ability to configure per-topic Partitioners

Use the property etl.partitioner.class.<topic-name>=... to set a per-topic Partitioner
Will default to the property 'etl.partitioner.class' if not specified for a given topic
Set the default Partitioner BEFORE the properties are applied
Merge pull request #10 from RallySoftware/partitioner

Support Arbitrary Partitions for the commit phase of camus