Uses ensure so that it unlocks even after an exception

What do you think?  Based on @mellop 's issue https://github.com/PatrickTulskie/redis-lock/issues/2