Define new core interfaces and classes, stealing where appropriate from current trunk.
Interfaces and classes considered "core:"
- Event, event builder
- Source / sink interfaces, abstract classes, and registries
- Lifecycle support interfaces and classes
- Trivial sources and sinks with NO external dependencies beyond what Flume itself needs (i.e. NullSink, LoggerSink, SequenceGeneratorSource).