Fix misuse of orddict:merge (discovered via unmatched return).

NB: orddict:merge/3 does not call the fun for all values in the merged
orddict, but only for ones that are in both. The function previously
padded each orddict with 'undefined' values to ensure that the entire
list of members on both sides was represented. It is less clean
looking, but much less computationally complex to sort the members
status and do a two-way recursive iteration.
Whitespace cleanup