Do not attempt to PQclear a null PQresult*
Make sure status() returns a message also on bad connection

Closes #2173.
prevent double-free in mapnik::projection

A double-free can happen when init_proj4 is called outside of the
constructor (for projections with defer_proj_init=true) and when that
call fails. In this case proj_ctx_ is not set to NULL and then freed
again in the destructor. Set to null to avoid second pj_ctx_free call.

See #2170
Merge pull request #2177 from strk/2.3.x-handle-bad-connection

Make sure status() returns a message also on bad connection
Merge pull request #2176 from strk/2.3.x-segfault-on-execute

Do not attempt to PQclear a null PQresult*
Use async libpq interface for queries