More versatility in map generation

- added a couple of methods to give more control over map generation to
overriding classes that don't want to rewrite entire sections of the
algorithm.
- fixed up the tunnel generator, which works now.