add support for passing custom encoder/decoder/formatter to Adapters.Postgres

This would ease the integration of custom encoders like [geo](https://github.com/bryanjos/geo) to extend functionality.
The custom functions need to call the corresponding functions on `Ecto.Adapters.Postgres`. If you fall back to calling the `default` function the ecto functions will be skipped.

Keep in mind that this will be provided on a best effort, we cannot guarantee that ecto won't do crazy stuff when using custom encoders and that type checking won't break.

We need tests and an example showing how to call `Ecto.Adapters.Postgres.*` (probably not in the README, since it is quite advanced).