Revert to dictionary backing instead of ivars.

Seems that classes created during runtime are treated as MRC, so there weren't
no retain/release for the ivars backing up the dependencies.

I choose to go back the dictionary backing, which is what has been working for
months in my code.

A new test simulate autorelease pools being drained between the first and the
second use of the factory.

See #174.
Use right type for argument.

It was failing for me in OS X 10.9 x64.
Improve IsSelectorReturnsRetained check.

We were having false positives for some methods, and we weren't covering all
the (name) cases that http://clang.llvm.org/docs/AutomaticReferenceCounting.html#method-families
documents as belonging to the returns retained method family.

See #163.