Fix missing mutex release when aborting builds

Currently when zuul aborts a build due to e.g. abandoning a change the
mutex doesn't get released. This blocks all further jobs requiring the
mutex until zuul is restarted. This adds test cases for detecting this
and the missing mutex releases.

Change-Id: I37e69310fed045c5a41bd4eccb151c8826f342ea
Story: 2000657
Task: 3115
3 files changed