Adding BlockEvent abstract class

Adding a base `BlockEvent` interface.
Merge pull request #34 from prism/events-block

Adding BlockEvent abstract class