Bug 1111837 - Add failure callbacks

Also replaced MR_findFirstByAttribute with MR_findFirstOrCreateByAttribute where I could.
I like this style from promises TBH. Its harder to ignore the error callback than it is to ignore an error parameter. But it also ruins nice looking block code:

i.e. you wind up with method({ result in }) { error in }
instead of method { (result, error) in }