ReactiveCocoa/ReactiveCocoa — pull request #816 by jlawton (2013-09-24 00:17:11+00:00)
Title: Fix RACObserve with protocols.

I don't think the downside of this is too bad, and it allows me to use RACObserve with non-object properties defined in protocols.

```objective-c
@protocol Foo
@property (nonatomic, readonly) NSUInteger bar;
@end

- (void)baz:(id foo) {

// Won't compile, because [foo rac_valuesForKeyPath:observer:] is not found:
RACObserve(foo, bar)

// Won't compile, because foo.bar can't be cast to id:
RACObserve((id)foo, bar)

// Won't compile because ((id)foo).bar can't be found:
RACObserve(((id)foo), bar)

// This is fine!
[(id)foo rac_valuesForKeyPath:@keypath(foo, bar) observer:self]

}
```