First pass refactoring of the core library to not care about rooms being
grid-aligned.
Fix a bunch of initial bugs.