Go version of non-recursive mergesort, both in place and using buffer.

Since I've already wrote this I'm not going to start from scratch but just port this to C.