Convert random choices to pattern matching

(and add another ordinary room description)
Use room names instead of IDs in Move actions

I'd become so used to seeing the IDs there that I forgot they were out of place!

Also, I'm not sure about "ordinary room", but can't think of anything else to call it.
Significantly improve monster descriptions
Significantly improve fountain room descriptions

And re-add-in fountains drying up, NetHack-style.
Give Directions object its own file
Change Directions to use immutable Maps
Simplify monster generation
Continue with immutability
Improve LevelBuilder debugging code

I found a better way!