Make sure updates are marked as failed

Previously, we used to mark updates us failed and performing
rollback afterwards. Those changes marking updates as failed
after rollback.
Change redis-semaphore to redis-mutex

I experience some issues during tests with threads and deadlock.
Not sure if there is possibility to fall into on production but
I am changing locking mechanism again to the more thread safe solution.

During the tests I found that redis-semaphore has some thread-safe issues.
Thus, we are changing our locking mechanism to redis-mutex.

Conflicts:
	Gemfile
keep redis-mutex for 24 hours

Long running rollbacks can take long
Merge pull request #169 from bitzesty/mark_failed

Marking failing updates