Changes to how neighbours are parsed, Lexer quotes

Instead of a room's neighbours being stored in a map as {ID,direction},
neighbour is now a struct containing the ID, direction and a
description. This is been done so that a description of the exit can be
included.

There's now an enum containing all of the the exit directions.

The Lexer no longer includes quotes in tokens that "look like this".