Added TypedOrderedDict to datastructuretools. MODEL NOTE INCLUDED.

The class is currently a stub.

This is the first commit in a series that will address GitHub #260.

The class will be used to replace probably very many inventories that are
persisted to disk by the score manager.

Consider the current view inventory data structure:

    view_inventory=datastructuretools.TypedList(
        [
            iotools.View(
                ['segment 03', 'segment 02', 'segment 01'],
                custom_identifier='backward',
                ),
            iotools.View(
                ['segment 01', 'segment 02', 'segment 03'],
                custom_identifier='forward',
                ),
            iotools.View(
                ['segment 02', 'segment 03', 'segment 01'],
                custom_identifier='two-three-one',
                ),
            ]
        )

When TypedOrderedDict is available, this will change to:

    view_inventory=datastructuretools.TypedOrderedDict(
        [
            (
                'backward',
                iotools.View(
                    ['segment 03', 'segment 02', 'segment 01'],
                    ),
                ),
            (
                'forward',
                iotools.View(
                    ['segment 01', 'segment 02', 'segment 03'],
                    ),
                ),
            (
                'two-three-one',
                iotools.View(
                    ['segment 02', 'segment 03', 'segment 01'],
                    ),
                ),
            ]
        )

MODEL: this will have the (very much desired) effect of removing
the 'custom_identifier' property from many, many classes in the system.