Define apply methods for all sorting objects so they can be used without calling sort().
Added Bubblesort nth pass ignores last n-1 elements optimisation