More modular gadget handling and teleporter

Allow for more modular creation of gadgets - each gadget may refer to a delegate in the Level class that modifies the level in some way when it is triggered.
To create a gadget, define a delegate in the Level class and create an entry for the gadget in the xml, referencing the name of the Level method that gadget should use as its delegate.
The time-slowing gadget was updated to use this framework and the teleporter gadget was added.