Fixed issue where mergeArrayAt returned target twice when no index was specifed.

```
var a = ['a','b','c'];
var b = ['d','e','f'];

mergeArrayAt(a, b).join('');  // output: abcdefabc
```
Added validation and correction to `cloneTag` arguments.
General cleaning and better naming.