KAFKA-925 Add a partition key that overrides the message's stored key. Patch reviewed by Joel.
(1) Merge remote branch 'upstream/trunk' (includes KAFKA-925)
(2) Added KAFKA-879 from 0.8 for system tests

Conflicts:
	core/src/main/scala/kafka/producer/DefaultPartitioner.scala