Add Unmarshal for db Row => structs.

Add an Unmarshal function that takes a sql.Row or sql.Rows (technically,
anything with a Scan function) and an interface as an argument. It will
then attempt to map the database results to the struct fields.

This is the mirror to getFields; getFields returns a list of the fields
and their values suitable for use in queries. Unmarshal sets the fields
to values provided by database rows. It will correctly skip unexported
fields and fields not stored in the database.