Moved LTI result reporting to new service

This uses the domain layer to store queued results, which are then
sent asynchronously every minute or so. It can retry a number of times
after failure, so has a certain amount of durability.
Tidied up previous commit + added manager action

I've added an action to qtiworks-engine-manager to send all
pending LTI results in the queue, which might be useful in
some cases.