Make TWTKeyValueObserver retain targets before messaging them

@prachigauriar @jnjosh please review
Actually, the `XCTAssertFalse` macro includes a reference to `self`, so it needs to be inside too.