Standard iOS `valueForKey:` applied recursively