Less hardcoding (not runnable)

In process of making more reuse of code between different
building formats, and supporting more buildings in these types
without changing the code
Ref last commit. Now runnable
Fixing bug in getVirtualZValue + div

Also added more 3d buildings and fixed a bug in bl_to_xy in holsenjs.