Initial work on locking doors.

This commit adds an Item struct, an Unlock command, and a locked
attribute to Exit. Currently, you can't unlock anything, but if you
could, it warps you to room 1. Heh!
small refactor: can_go on exit

by moving this into a method on exit, we can keep the game method very
short, while letting the exit determine if we can go there or not. Good
OOP!
Locked doors are locked.

Here's where the refactoring in the previous commit starts to pay off.
We can add the logic inside of the Exit itself, without needing to
complicate anything outside of it. I assume this will only get more
messy as time goes on.
ignore vim temporary files