Randomly generated city, positioning guards randomly

NavMesh size as halfWidth and halfHeight instead of halfSize^2
Some fixes in navmesh indices (using index_t, not uint16_t)