FLUME-2511. Allow configuration of enabled protocols in Avro source and RpcClient.

(Tom White via Hari)
Initial commit for Kafka Channel
Initial implementation complete
Add comment explaining why we need threadlocal consumers
Add overrides for the relevant methods.
Use string as key for map
Initial commit for Kafka Channel tests
Add initial Kafka channel test file
Add event generation code to kafka channel code.
Puts works (the producer.send is being called). Need to update the test to ensure that the topic is created
before the test starts. Can copy it out from the KafkaSourceTest.

From debugging I can see the take also works, but as of now no way to test for correctness as topic is not there yet.
Create new event lists only if it has not been initialized
Adding travis.yml
Adding topic creation code to tests.
Exclude travis.yml from rat
Takes also now work. Multiple TODOs:

1. Java Serialization is broken. Use Avro to make sure things work.
2. Number of threads is currently too few. Increase the partition count in the config, make thread count configurable.
3. Clean up tests, reduce logging.
Bug - how to fix?
Events are now Avro-serialized in the same encoding as Avro Source.
Tests now work. Tests still need to verify the content of the events, but now all 50 events are being pulled out.
Validate the data in the events in the unit tests.
Use Optionals instead of nulls everywhere possible.
Increase number of partitions and use correct timeouts.