Allow configurations to define listeners

Addresses #329

One or more listeners can be defined in configuration as:

    listeners:
      - backend: example
      - backend: mycustom.package
        arg1: somevalue
        etc: othervalue

I wanted feedback on the actual implementation before I finished out the
test cases and tox compat with other Python versions.  Only the methods
the listener cares about needs to be implemented.