add celery, api will now queue a task and return immediately with the task id which clients can later look up for email status, refactor email services and tests a bit