Allow configurations to define listeners

A listener can receive the same notifications that the existing
search_backend receives by declaring a Listener() object that
may optionally implement the following methods:

    repository_created
    repository_updated
    repository_deleted
    tag_created
    tag_deleted

These are post-commit listeners and are not guaranteed delivery.