Use conformsToProtocol for getProperty calls

Most object types will eventually have methods, so this check is a bit easier. However, if this turns out to be a bottleneck, then we may want to use NSIndexSet