Prepare queries on demand instead of all at once at startup

This PR only concerns sqerl's pg client (note for separate discussion: time to consider removing the mysql bits?). At connection startup, the prepared queries are stored in the connection state, but not initialized on the connection (not actually *prepared*). When an execute call is made using one of the prepared queries, it is prepared on-demand and cached such that subsequent calls will not require the preparation step.

The goal is to ammortize the cost of query preparation and allow clients with many prepared queries to startup quickly at the cost of slightly higher latency for initial calls involving each query.

unit and local itests pass. smoke test in dev-vm works.