generalize an event bus concept and implement for Kinesis

* factor event pushing and consuming within engine into EventBus
* implement unpersisted event handling as NaiveEventBus
* add aws-java-sdk dependency, update NOTICE with transitive deps
* implement KinesisEventBus which uses an Amazon Kinesis stream for durability
* annotate Event ctor to allow deserialization from JSON
Merge pull request #1 from logscale/add_kinesis

generalize an event bus concept and implement for Kinesis