World|Plane: Cleanup
Refactor|World|Sector: Map has ownership of SectorClusters

SectorClusters are now owned by the Map, which provides a QMultiMap
for efficient lookup/traversal by Sector pointer.
World|Sector: Cleanup
Optimize|World|SectorCluster: Avoid unnecessary Surface Decoration updates

Previously if a mapped Plane move occurred then all of the Surfaces
of LineSides in the cluster-linked Sector were marked for updating,
irrespective of whether those surfaces are actually "dependent" on
said plane.

In large maps with lots of moving planes and light decorations, this
meant a lot of unnecessary surface redecoration.

SectorCluster's internal boundary info is automatically prepared the
first time one of the dependent Planes move if needed (map hacks may
mean this info is already prepared). The boundary info is then used
to limit light decoration updates to only those Surfaces which share
a boundary edge with the cluster.

Todo for later: Free the boundary info if the dependent planes have
not moved in a while.
Refactor|World|SectorCluster: Moved SectorCluster out of Sector