Minor efficiency improvements

Calling the overload on Array.Copy saves having to compute the start
position of both arrays when we know it is always zero. Also, the main
use for this version of DbDriver.Combine is Insert + Select ID in which
case most SqlDialects don't have any parameters in the Select ID
statement so save the call to array.copy which would copy 0 values if
there are none to start with.
Improve array copying

CopyTo calls Array.Copy itself, we can save an extra method call here
and also use the overload which specifies the start indexes instead of
computing them every time as they are always zero.