pg, map `char` and `name` types as string. [dark-panda & Yves Senn]

Closes #10802.
pg, `change_column_default` accepts `[]`. Closes #11586.
test, use `columns_hash[]` in place of `columns.find {}`.
flip conditional to use if/else instead of unless/else

Use if/else instead of unless/else so conditional reads better.
raise error if around callback has no yield

Around requires a yield. If an around_destroy callback is called
but there is no yield the callback will fire but the record
will not be destroyed and throw a record not destroyed error.

This isn't clear that a yield is required and this raise provides
that clarity.

add new class for failed around terminator

I did this because to get the around to fail in other tests
would cause the others to fail as well because they would all
raise and not save.

add test to test that ArgumentError is raised if no block

This test tests that an error is raised because this around
callback will fail. It also ensures that the message returned
is "no block given (yield)" to the user. It also tests that the
object is not saved.