Nth element

Added benchmark, modified the tests and implemented a selection algorithm. ~5x improvement...
`nth_element` only partially sorts the range, which means that elements in `[first,nth)` are less than elements in `[nth,last)`. Therefore, I see no reason to do anything if `nth == last`.