Merge two option sets. If Old is a dict, Merged is a dict. Otherwise
Merged is a sorted list of options using the canonical format
Name(Value) holding all options from New and Old, after removing
conflicting options from Old.
Multi-values options (e.g., proxy(Host, Port)) are allowed, where
both option-name and arity define the identity of the option.