Refactor|Partitioner: Separated partition intercept list from the half-plane

Wrapping the partition and the list of intercepts into an object
with the associated semantics of object access has little practical
benefit. It makes the intercept list harder to manipulate and it
demands a robust API to manage them in such a manner.

The only benefit to this abstraction is that it ensure that the list
of intersections is always sorted. However, this can be achieved by
other more practical means (todo).