coerce strings when reading attributes

Closes #10485.

Other data types are coerced when read but strings currently stay as is. This patch will coerce values for string columns to mirror the behavior when the records are fetched from the database.

I had to create a new `OID` class as the PG adapter takes a different code path than the other adapters. There are a few hacky things like the `Array === ` check to support multidimensional PG arrays. Also I'm not sure what consequences it has to move to `OID::Text`. However the test suite passed.