Refactor trigger system (#210)

Tiles now hold array of references to triggers
Map owns the triggers
This means a trigger can be referenced by many
tiles, so doors only require one trigger + one watch

The trigger array in tile is lazy-initialised because
initialising all of them at startup introduces seconds
of delay.