Add new commands, tweak existing commands

Single parameter commands (pick up, look at) don't accept empty
parameter commands (i.e. "pick up" isn't valid but "pick up foo" is).

There exists commands for looking at player inventory and quitting the
game.
Start room can be empty.

If no start room can be found, an empty reference is used instead. This
way it is possible to parse partial TextAdventures and combine them
later using mconcat.
Add runChecker function to TaCheck.

runChecker can list all the warnings it can find when running
checkTextAdventure writer on TextAdventure.
Game loop, renamings, obvious bug fixes.

Rename interact to avoid collision with IO's interact function.

Add game loop for reading input from user, parsing the command, and
doing the appropriate action based on the command.

enterRoom now shows both name and description of a room.

doActionOnItem returns Left on failing action instead of right.

removeItemFromRoom removes the given item instead of all but the given
item.
Refactor file parsing code, finish main program.

The code related to parsing TextAdventure from files is now located in
FileParser module. Main program can now parse files, check the resulting
text adventure, and play it if it is functional.
Add a sample game.