Added Pre/PostFireEvent and GunTickEvent. Added event handlers to
modules. Moved some of the logic out of RayGun into the event handlers.
Migrated the charge shot effect out of RayGun into a Chargable trait
which is applied to the two chargable lenses.
Disallow firing the Matter Transporter beam when there is no block to
transport.
Finish event-driven-raygun. fixes #11