Ping the database when testing connection option strings

In this particular case the code path wasn't tested at all as
database/sql did not call our Open().
Avoid unnecessary code duplication
Add Marko Tiikkaja to contributors
Add CONTRIBUTING.md for contributing guidelines

This also lets us hook into the slick interface that GitHub provides:
https://github.com/blog/1184-contributing-guidelines
Make version number references consistent
Simplify error handling

This removes the PGError interface, and moves all existing types to the Error type.
The default representation of a Error now uses the human-readable 'Message' field.

This additionally removes the potentially-confusing two-layer recover() situation in conn.Open()
Add ErrorCode type and test
Maintain legacy PGError interface
Add reconnect test case

This isn't really pq's purview, but it illustrates that issues like #95
are a database/sql problem (hence fixed).
Don't export Open, it shouldn't be called directly
Don't export Values type.

It is only used by internal methods as part of connection string parsing so
no other code should be using it.
Don't export newScanner.
godoc
Add Paul Hammond to Contributors