Implemented TypedOrderedDict.

A few public methods remain. But the class is basically complete.

Note no doctests appears. Tests are housed in a comprehensive py.test file.

The reason for this is that the class is going to function as a base class for
probably most of the inventory classes in the system. So adding docstrings to
TypedOrderedDict will cause cognitively dissonant examples to appear in the
child classes.

(The same is already true for the docstrings of the other typed collection
classes. But those can be left as-is for now.)