Description - Templated Quicksort
This is a quicksort Algorithm with can be used with any data type that can make use of the OperaTor. You pass in a vector of the data type and the algorithm sorts it. The algorithm works by splitting the vector into 2 (hopefully) equal parts. It recursively does this until the 2 parts are so small that determining which part goes where becomes a trivial matter. After the vector is split and sorted, they are combined to for the original, in sorted order. This algorithm will sort in ascending order regardless of data type (assuming the