Optimal DualPivotQuicksort

The DualPivotQuicksort now accepts a flag in it's constructor
which can specifiy whether or not it should behave optimally.