Engine refactoring, relates to issue #45.
- Working on the datasource request/event/dispatch flow
- Added tests to support above use cases for both sdk and engine