Per topic partitioning bug fix and additional extension points

* Fixed bug in partitioners by topic
* Added pluggable offset writers - useful for writing plain text offsets
* Added record partition extension point - useful for updating hive metastore
* Update context when new mapper starts 
  - hadoop reuses committer and will call setupTask with new context when starting new mapper.  Verified context is being changed through the lifecycle of committer. 
  - addCounts uses this possibly old context.  Not certain the behavior is incorrect, but it could be since the output path changes when mapper changes. 
This abstract class doesn't seem provide much value.