mappedreader: better error reporting on bad maps

* call `IDataReader.GetDataTypeName`, save that in the exception
* more tests of error conditions
mappedreader: if we have a bad cast, bail to string and convert

Had a bug when calling `GetDecimal` would fail because the value was
actually a double. It takes an explicit cast to get from double to
decimal.

In mapped reader's case, we just want the thing from the data reader
as our specified type; we've essentially specified an explicit cast
already.

Adds a fallback case to dump the field as a string, and use a
`Convert.` function to go from string to our requested type.
mappedreader: version bump
build: when pushing to nuget, build the package first