Added heap sort, quick sort, and recursive and iterative merge sort

can you also add tests for edge cases (empty list and list with only one thing in it)