Fix Issue 13650 - Cannot copy (w)char[] into (w)char[]

The diff is a bit messy, but the change is essentially to remove the `isOutputRange!(Range2, ElementType!Range1)` condition from the template to allow `char[]` and `wchar[]` targets (they aren't output ranges). The check is now only at the end when we try to use the non-array path.

https://issues.dlang.org/show_bug.cgi?id=13650