3.3. BinarySearchBased Merge to Add the Sort Margin

Instead of qsorting the sort margin in, keep it sorted and
then use a binarysearch based merge to merge it with the
main array.

The reason I used a binary search based merge, instead of a
linear merge, is because I reasoned that the main array
would become much larger than the margin (which has a constant
size), and so this would result in a lot of comparisons.

O(log(n)) lookup, O(n) insertion, and O(n^{2})
accumulative complexity.

Noticeably faster than qsorting.
Written by Shlomi Fish