Address concurrency problem in the WorkflowService
Part one of probably 2.
Refactor the WorkflowService into two pieces:
- a MessagingHandler, which connects to AMQP and does the handling of those events, and
- a per-request WorkflowService that handles web requests as they come in