Sorting optimization

Added sorting Optimization for Quick sort for:
	-Repeated Elements (almost as fast as qsort)
	-sorted and reverse sorte arrays (slightly better than mergesort)
	-small arrays

Now Quicksort runs much faster, still not fast enough. More work needed

Restructured the Class cSortableArray so that now it can sort vectors
passed as argument.

Tests for cSortableArray are in fibonacci.cpp. Being a templated class
means the tests need to be somwhere where we have a instanciated
version.

Performance test parameters are defined as constants at the top of
fibonacci.cpp. The current parameters require very long tests (up to 4
hours).

TODO:
	-code refactoring for a cleaner structure
	-Simplifying some algorithms
	-Reduce memory usage for merge sort
	-Improve Quicksort