Replace all uses of SortedDict with collections.OrderedDict

The only places where this required any effort were:

1. Form Wizard, which used implementation details of SortedDict to find the "next" item in the list.
2. DB Loaders, because a raw OrderedDict can't deepcopy if it has module as keys.

To solve 2, I implemented a sub-class of OrderedDict in django.utils.datastructures which implements the same __deepcopy__ from SortedDict.