Extract interpolated values and use as parameters

Interpolated expressions are moved to a map unescaped and replaced with
(^index) in the query where index is a number indexing into the map.
The map is stored in the :external field on QueryExpr.

The postgres adapter replaces the interpolated value with a query
parameter ($1) in the result SQL query and extracts all interpolated
values from the QueryExprs into a list of parameters.