Split Missions DSL into seperate modules

Code should be a bit more robust / modular and easier to
understand. Docs also updated to explain so functionality
Missions DSL Split out resolution events & query filter

Changes make DSL components more modular by splitting
out entity & expiration events (fixing small regression
w/ cleanup_entity id's in process) and allowing invoker
to specify generic params to filter entities checked
during entity_destruction query
Emit failure event on mission expiration

Clients can now subscribe to failure event to be notified
of all failures and not just expirations
Add missions failure event
Allow multiple handlers to be registered for mission events

Fixes small regression introduced when event handler uniqueness
constraint was mistakingly added
Add missions dsl resoltion method to mark specified mission as failed

Allows missions to be tied together so that on success / failure of
one, another can be marked as failed
Add tournament example
UI: handle all mission victory & failure events