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.