Bug 1015841 - [Messages][Refresh] Recipients panel visible area handling. r=julien

JS-based solution
@julienw, I spotted that "this" can be null in unit tests (call scheduled, but in teardown reference to this object is removed), within app I don't think that it can happen currently, although I don't like it but with WeakMap it's theoretically can be the case what do you think? Maybe ``` if (!this || !priv.has(this))``` would be better though.