Added/updated various dictionary, set variants

* OrderedDict (new)
* OrderedSet (new)
* DefaultDict (updated)
* DefaultOrderedDict (new)

The PR for this commit contains a detailed explanation of
the evolution of OrderedDicts