Feature/conversation checks

Currently there's only one way to change what happens in a conversation: use checkInventory to replace an option with a different option.
This feature adds more options:
• Conversations can depend on enabled triggers (triggersEnabled), in-progress objectives (objectivesInProgress), and completed objectives (objectivesCompleted), as well as inventory items (has).  The syntax is similar, except that the property is 'check' instead of 'checkInventory' ('checkInventory' still works for compatibility) and the properties mentioned replace 'has'.
• Replies can be removed without creating a copy of the whole option.  Any reply leading to an option with a 'requires' attribute is affected; the same things (triggers, objectives, inventory) can be checked as for the other method.