Added Heapsort and refactored sorting

Added heapsort with tests.
Moved all sorting functions in header file, as it is anyway necessary
to include the code to compile with templates.
Better memory usage for Merge Sort

Second implementation of merge sort with better memory usage. Added
tests and performance measuring.
Removed Insertion sort, heap sort and plain unoptimized quicksort from
performance testing.
Slightly optimized Quicksorting

Used Random Pivot in Quicksorting, added Optimizing options to the
Makefile