Use GenericEvent in State

Closes https://github.com/PistonDevelopers/event/issues/155