Refactor|Partitioner: Use a map Line::Side as the partition line

Enabling the partitioning logic to be defined side-relatively.
Refactor|BSP Builder: Began remodelling the space partitioning logic

Returning to this code after the enhancements made for Doomsday 1.10
it is clear that the high level design of this module was somewhat
compromised in the process.

Before going further with the extraction of the geometry generation
from the map renderer, it makes sense to clarify the implementation
once more.
Refactor|Partitioner: Separated half-plane concerns to bsp::HPlane

Unlike the previous component of the same name, this HPlane class
encapsulates all half-plane concerns, logics and data.
Refactor|Partitioner: Separated the concept of a line segment from half-edge

It is inconvenient from the POV of the partitioner to model a finite
line segment in the plane using HEdge. Instead it is better to model
these separately (i.e., using two vertexes and without the HEdge
API semantics) internally within the partitioner.

HEdgeInfo has been remodeled into LineSegment which now references
any HEdge constructed from it. Whilst partitioning the coordinates
of line segment are now used directly with those of the associated
half-edge being updated to match.

Todo: Defer half-edges construction until BSP leaf creation time.
Todo: Cleanup.
bsp::LineSegment: Allow access-to/replacement-of vertexes via the API only
bsp::LineSegment: Work with Vertex directly; removed internal coords
bsp::LineSegment: Observe Vertex::OriginChange notifications

Removing the need for users of this class to manually update the
precalculated value cache explicitly via the API.

Todo: Defer updating the value cache until next accessed.
bsp::LineSegment: Encapsulated more logic/instance data

Plus more Partitioner cleanup.
Partitioner: Various HPlane and LineSegment improvements

LineSegment now encapsulates vertex distance logical relationship
determination.

Revised HPlane::interceptLineSegment() to accept an edge identifier
rather than a vertex and now returns any resultant intercept. Also
added an internal mechanism to avoid repeat sorting of intercepts
(won't occur presently but its there for completeness sake).

Plus more cleanup and documentation improvements.
Partitioner: Moved HPlane::distanceToVertex to LineSegment (SoC)
bsp::LineSegment: Encapsulated the internal value cache

Access to this data is now possible only by virtue of the API.
bsp::LineSegment: Added remaining accessors/mutators
bsp::LineSegment: Cleanup
Refactor|Partitioner: Reimplemented splitLineSegment()

The previous implementation was needlessly obfuscated by the lack
of temporaries and poorly chosen variable names. This new version
is much easier to follow (IMHO).
Refactor|Partitioner: More readability improvements
Partitioner: Fixed terminology mix ups (line segment vs half-edge)
Partitioner: Documented openSectorAtAngle()
Merge branch 'master' into bsp-builder-cleanup
Merge branch 'master' into bsp-builder-cleanup
Refactor|Partitioner: Removed HEdgeIntercept abstraction

This data should not have abstracted away from HPlane::Intercept as
this is not just metadata, it also provides the internal state for
the merge phase of the sortAndMergeIntercepts() algorithm.