Fix #7642.

Explicitly call convert on append/prepend/splice items to match 1st array elements. This causes a MethodError to be thrown before any array growing/shrinking happens. Fixes #7642.

cc: @kmsquire, in particular I think the `splice!` changes should do the trick, but I'd appreciate a look over to make sure I didn't miss something.
Hmmm.....turns out `d = length(a)` was causing one of the build failures, so I've taken it out, but 
```julia
copy!(a, length(a)-n+1, items, 1, n)
```
Is actually from the original implementation, I didn't change it at all.