Refactoring of repeated code

This makes code more readable.
Reference implementation of insertion-sort algorithm which use recursion

Implementation includes unit tests and micro benchmark.
Length of arrays in all benchmarks are reduced, because we cannot
go higher due to StackOverflowError thrown by recursive insertion-sort
on array length 10000. Reduce this length in all sorting benchmark
ensure, that all sorting benchmarks will be comparable to each other.