Support run-time parameters in connection strings

Commit 423884a9f7667f5c6f1b6 made it superficially look like the
startup message sent by pq included more parameters than just
"user" and "database", and commit 6c7918fdcbd1dacbf6104ab2a
subsequently fell into the trap and attempted to introduce support
for a number of environment variables.

Fix the startup procedure to actually send the parameters to the
server backend, thus adding support for a number of environment
variables as well as connection string parameters.  This behaviour
is slightly different from libpq, which only allows a specific
subset of run-time parameters to be set directly in the connection
string, requiring the rest to be set in the "options" parameter
using a clumsy syntax.  libpq's behaviour was deemed inconsistent,
and therefore was not faithfully reproduced.

This change is not fully backwards compatible as the previous
behaviour was to silently ignore invalid parameters in the
connection string.  These applications will fail with ErrBadConn
when attempting to operate on the sql.DB handle.