flattenToList - unpacks object arrays and collections recursively, drops nulls