Control collation behavior with a method table.
Previously, behavior branched based on the provider. A method table is
less error-prone and more flexible.
The ctype behavior will be addressed in an upcoming commit.
Reviewed-by: Andreas Karlsson
Discussion: https://postgr.es/m/
2830211e1b6e6a2e26d845780b03e125281ea17b.camel%40j-davis.com