Fix: finally navmesh vertex cache failure fixed.

There was a more fundamental problem in the cache that arises from the
nature of the floating point 2d-vectors. Even if the fp-value is clamped
to a grid, two values that should cause the vertices to be merged, may
fall to different sides of the grid causing them to get differen
hash-values.
The solution is not so elegant, but should work. Vertex coordinates are first
hashed and the vertex in cache is chosen if it is at merge distance from the
actual vertex. If no vertex is found at the hashed position, a linear
search is performed for all vertices and the first one close enough is
used. If no "equal" vertex is found, a new vertex is inserted.

Added flooding navmesh to determine connected regions.