Improvements to the Quicksort Algorithm

Add some improvements to the Quicksort Algorithm. These include
selecting a random pivot element, using Insertion Sort for smaller
lists, and creating a 'fat partition' containing multiple pivot
elements. Change the Insertion Sort Algorithm to also be able to operate on
ranges within a given array. This is necessary since the implementation
of Quicksort works in-place. Add a wrapper function for Insertion sort,
and move Insertion Sort to the top for the compiler to recognize it when
compiling the new Quicksort Implementation (because it is just as
dumb like that).
Add measurement for C++'s default sort algorithm

Add the default sort algorithm of C++ to SortMeasurement to be able to
compare the sorting implementations to it.