Add typed column info and a dataset copy context

This is the start of a big refactoring.  Practically everything that
touches a ColumnInfo or CopyInfo object is now going to take one of these.
Push type-string-rep-to-type-object conversion as far to the bounds as possible