Selection and partial sorting algorithms
Removing the use of written operators <=> and using comparators, fixing #2.
Added heap select and fixed several corner issues when iterators are random access and have a small difference type
Fix #1 and mark all header functions as inline to avoid ODR violations
Fix the namings of the functions to comply with the API