refactor: PartitionPointer contains reference to PivotElements used to create partition
PivotQueue::put() is a private method
A pivot element stores it's position within the pivot queue

Allows for more robust release of pivot elements, since it is now not accessed with index magic
no need to store partition pointers for empty partitions

even when the pivot element is already in use