Add Copy method

This prompted some other changes.

* {,Set}{Row,Col} now don't panic and (with the exception of allocation
  when the {row,col} parameter of {Row,Col} is nil) don't allocate.
* Copying (including in the above methods) is similar to the copy
  builtin; copy the maximum possible.
* Set{Row,Col} return an int indicating the number of elements copied
  and {Row,Col} return a slice the length of the number of elements
  copied. This allows a client to perform the kinds of check that we
  previously did.
* Order of parameters in {Row,Col} changed to match "dst, src".

Also bugfixes in various places.