fixes & improvements to C++ version

- make it compile under MSVC (doesn't have uniform init syntax)
- don't use C headers, and use C++ iostreams
- use emplace_back
- fixed a bug in pickLevelByCriteria (would overwrite other rooms)
- added a few consts

this version is ~150ms faster for me, YMMV