Renderer|SectorCluster|BspLeaf: SectorCluster routes BiasDigests to surfaces

Leaf-level granularity for routing change notifications is wrong as
this assumes there is at least one surface geometry at each leaf.
A binary space partition does not inherently mean a convex subspace
will exist at the leaf. The subspace geometry is only fully defined
(or inferred) at a higher level.

Previously leafs were given responsibility of routing bias lighting
change digests because no other component had direct access to all
of the internal surface geometries.

However, since the introduction of the half-edge data structure it
is now easily possible to navigate to any element in the map geometry
mesh from anywhere else (provided they are connected by at least one
edge, of course).

This means this routing logic can now be placed in SectorCluster so
that we can take advantage of the extra spatial knowledge.

Todo: SectorCluster should also be responsible for surface BiasIllum
generation and management. Presently an illumination point is needed
for every face => vertex interception in the half-edge data structure
despite that many will never be used. SectorCluster has the necessary
knowledge to avoid allocating illumination points for internal edges
with no possible surface (inherently zero-area and will remain so,
regardless of plane movement or map hack mappings).