Creating tasks refactor

- introduce TaskCreator. Idea is that both the TaskController and the
  tests use this to create tasks. This allows tests that don't write
  directly to the database

- use TaskCreator in controller
- use TaskCreator in step defs