Add __strong for explicitness and defensisveness
Comment on objc_precise_lifetime attribute use
Test object lifetime for -setKeyPath:onObject:

This included test will fail prior to c0013d4.

The use of sleep and delayed async doesn't seem ideal, but an implementation
using locks was intermitently crashing because it made retain of the implicit
unsafe_unretained more likely.