Pruning/promotion of properties, deep merges, and joins for Ruby Hash objects