Refactored event publishing APIs
Refinements and additional validation for event publishing
Raise exceptions and return event objects when publishing events
Merge pull request #243 from shenrie/master

Refactored event publishing APIs