removed useless import
added a celery instance as extension. must be configured by application
ensure service set event listeners only once
search: don't run a db query if whoosh result set is empty
celery config for tests: no async, propagate exceptions
setup celery in app init
don't init services in setUp, its already done in app creation
index documents in an async task, one task per model type
Indexation is done only after commit

service singleton is moved inside 'indexing' module, so that is is available to
async task
index task:

obtain its own session to query models from DB:
 * a task should not mess session for all task run after
 * during tests the task is called in after_commit: "main" session is not active at this time.

Assume a changed or new model may have been deleted after task queued