Fix IDEX-1379 Ability to stop run earlier

With a new method RunQueue#stop called from RunnerService#stop the run
can now be put in a clean stop status just after having been launched.
It gives a clear distinction between user triggered stop and failure
cancellation.
correct thread safe code looks like this:
if (stopped.compareAndSet(false, true)) {
  cancel();
}