work in progress: add support for querying sources

Please don't merge yet; I still need to add a few tests.

This depends on https://github.com/plone/plone.app.vocabularies/pull/6