Add conditional support for instrumenting coverage

By setting the `enable_coverage` environment variable during a build,
the `--coverage` flag will be passed to the compiler and linker. This
produces `gcno` "notes" files which are used to instrument coverage
during execution.
Enable uploading coverage during Travis build

Uses [cpp-coveralls][] to upload coverage information to the (free for
open source projects) [coveralls.io][]. This requires a few things:

  * Setting `enable_coverage` to `yes` to produce `gcno` files
  * Installing the coveralls command via `pip`
  * Allowing `postgres` to write `gdca` files to our checked-out code
  * Allowing our own user to read these files once created
  * Uploading the coverage data to coveralls

This is a bit ugly at the moment but hopefully this comment illuminates
what's being done. We'll clean up when we have more projects using this
service.

[cpp-coveralls]: https://github.com/eddyxu/cpp-coveralls
[coveralls.io]: https://coveralls.io/
Add coverage badge to README

For bragging rights/shame.