FLUME-1729. Flume-Spark integration.

Refactoring classes into new files and minor changes in protocol.
FLUME-1729. New Flume-Spark integration.

Avro does not support inheritance, so the error message needs to be part of the message itself.