two memcpy to memmove changes, fix use of uninitialized err value

Found via valgrind that overlapping areas of memory were being used with `memcpy` in two cases.  Technically [this is Undefined Behavior](http://bryanpendleton.blogspot.com/2010/11/memcpy-memmove-and-overlapping-regions.html).  Whether it causes any problems in practice will vary from platform to platform or optimizer to optimizer, but `memmove` is the right thing (if they indeed are supposed to be able to overlap!)

Also: there was a read on an unassigned variable indicating an error in `Loop_Each`.  I guessed 0 would be the right thing to use.

**UPDATE:** These three articles on "What every C programmer needs to know about undefined behavior" from LLVM should probably be required reading for anyone who's going to develop on the Rebol C sources: [Part One](http://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html), [Part Two](http://blog.llvm.org/2011/05/what-every-c-programmer-should-know_14.html), [Part Three](http://blog.llvm.org/2011/05/what-every-c-programmer-should-know_21.html)