Support citext and oid types

This ended up involving some pretty major refactors and fixed a bug
where passing extension types as parameters to `execute` broke.

Closes #56