merge.go: more optimization led to ~8% speedup

* preallocate memory
* assign 1-byte values directly
* call copy() instead of append() to copy bigger chunks