Fixed DualPivot. Added more tests

DualPivot was incorrectly implemented before. I wrote some tests,
found out why and fixed it. As a result I've also included
a hopefully more robust test suite for the future implementations.
The new test suite also checks permutations of small number arrays
to make sure that cases like [2,1,3,4] passes (it previously wasn't
in the old DualPivotQuicksort).