Remove unused mutex

no instance variables are being reassigned
Add 3 convenience methods to obligation

no_error! - waits and raises on rejection, otherwise returns self
value! - returns value, or raises if rejected
exception - allows to call `raise rejected_ivar`
Add Reference#ask!
TODOs and comments update