KafkaSink with SuroKeyedMessage

- SuroKeyedMessage with partioning key
- MessageSerDe is fixed accordinly
- DefaultMessageContainer created instead of just-in class
- kafka.metrics property is changed to kafka.etc
- keyTopicMap for setting the field name as partition key
- partition key's hashCode() is used by kafka producer key
FileQueue4Sink with autocommit

- autocommit for FileBlockingQueue is the default
- commit() method is obsoleted
- TestFileQueue changed accordingly, same behavior of MemoryQueue4Sink
Merge branch 'ISSUE-48' into ISSUE-42
Merge pull request #50 from metacret/ISSUE-48

FileQueue4Sink with autocommit
JUnit Rule TemporaryFolder replaced all temporary folder code
KafkaServer, ZK ExternalResource are added
KafkaSink import optimization
Merge branch 'ISSUE-37'
Merge pull request #51 from metacret/ISSUE-37

Issue 37
Stop draining the queue in QueuedSink on exception

- droppedMessages Counter is added when the queue is full
- stop draining the queue when msgList is full
- msgList.clear() is called in QueuedSink
- unit test fixed accordingly
Merge pull request #52 from metacret/ISSUE-49

Issue 49
Merge branch 'master' into thrift-0.7.0