Redid event implementation to use inheritance and type-checking that throws an EventPayloadException (unchecked)
Refactored and moved around packages. Generified event system. Added client states, ControlEvents, and some event types.