keys are now abstracted into "symbols" this allows for different types of keys besides literal keys (for instance requiring to solve the torch puzzle)
key item and puzzle now implement Symbol instead of requiring a seperate wrapper class. Should make to add more types of symbols