Fix #268: handle overlapping ranges in System.arraycopy.

Add check for overlapping ranges of entries within the same array and
fall-back to copy entries in reverse.