Added a build script among other things

* Added gradle script and wrapper
* Added jUnit 4 tests
* Made event cancellation available by default, persistent events raise an exception when an attempt to cancel them is made
* Made cancel a verbal method instead of a flag. It is write-once for clarity.
* Change the way events are received, now subscribers receive events, and MethodAsSubscriber allows for the more contemporary annotated method style of event listeners
* Due to the way this system works, mass-unsubscribe of a class cannot be cleanly accomplished, so that is stubbed with an exception
* Did some optimization on synchronized bits in the IridiumEventManager
* And then some