Improved output of print_array() so empty items are more distinct.
Improved verbosity when doing Backwards Gallop Merge.

Also, merging backwards makes my head hurt.
Fixed BGM after realizing that in the normal course of merging to,right,left are always advanced leading to off by 1 errors.

So the merging works by merging 1 item at a time, and after this merge advancing the 'to' and 'right' pointers backwards by 1 (Sigh).
Now when we do more than MIN_GALLOP from the same source we switch to Gallop Mode (or in this case BGM) and find a chunk to copy.

The bug was in the fact that the source and dest pointers were of course already advanced backwards by 1 in the first chunk iteration.
Reset the same_loop_counter after falling out of Gallop Mode.
Fixed missing advancement of pointers for Gallop Mode chunk copying in merge_lo()
After Gallopping from 1 run, try the other one until neither get above MIN_GALLOP