Moved stuff over from piston

Closes https://github.com/PistonDevelopers/rust-event/issues/127