Add some exception classes and enums for the new API.
Small correction for naming conventions.
Implement the C++ side of the original API wrapper.
Implement event dispatch on the java side.
Fix typo in API.
Implement the C++ side callbacks with protobufs.
Fix for message-passing style event handling.

Needed to decouple the event handler and the actual file data sending.