NSDictionary, NSArray, and NSSet categories that offer a method to recursively merge two objects together such that entries which exist between the two dictionaries, arrays, or sets are merged as well rather than overwritten.