Refactor|World|Map Renderer: Switched all Mesh face iterations to use half-edges

There are very few situations where the clockwise ordering of edges
around a polygon is important outside of the map renderer. In nearly
all other situations one can simply iterate the half-edges of any
given Mesh without affecting the outcome.

Where possible we now iterate the mesh edge list instead of walking
the half-edge geometry as this allows for many of the algorithms to
use the same logic for all half-edges at a given BSP leaf (leaf and
extra meshes and polyobjs).

Now that we are starting to make proper use of the half-edge data
structure the clarity and uniformity it affords is more obvious.