Implement PG::Result#values in C. This avoids the overhead of Enumerator-fibers and dynamic array size changes.
Sort MRI-types according to their probability.
Avoid duplicated type check for typemaps on query params.
Use RBasic encoding store as cache for connection's internal_encoding.

Remove encoding_index from typemap struct.

Rename typemap-struct member 'typecast' to 'typecast_result_value'.
Add type casting to Result#column_values and #field_values.
Cleanup and harmonize encoding assignment.