Added PitchClassTree to pitchtools.

PitchClassTree subclasses PayloadTree.

Use PitchClassTree to model arbitrarily *nested* pitch-class segments.

Example: numbered pitch-class tree:

    >>> tree = pitchtools.PitchClassTree(
    ...     items=[[0, 4, 7, 8], [9, 2, 3, 11]],
    ...     item_class=pitchtools.NumberedPitchClass,
    ...     )
    >>> print(format(tree, 'storage'))
    pitchtools.PitchClassTree(
        [
            [
                pitchtools.NumberedPitchClass(0),
                pitchtools.NumberedPitchClass(4),
                pitchtools.NumberedPitchClass(7),
                pitchtools.NumberedPitchClass(8),
                ],
            [
                pitchtools.NumberedPitchClass(9),
                pitchtools.NumberedPitchClass(2),
                pitchtools.NumberedPitchClass(3),
                pitchtools.NumberedPitchClass(11),
                ],
            ]
        )

Example: named pitch-class tree:

    >>> tree = pitchtools.PitchClassTree(
    ...     items=[['c', 'e', 'g', 'af'], ['a', 'd', 'ef', 'b']],
    ...     item_class=pitchtools.NamedPitchClass,
    ...     )
    >>> print(format(tree, 'storage'))
    pitchtools.PitchClassTree(
        [
            [
                pitchtools.NamedPitchClass('c'),
                pitchtools.NamedPitchClass('e'),
                pitchtools.NamedPitchClass('g'),
                pitchtools.NamedPitchClass('af'),
                ],
            [
                pitchtools.NamedPitchClass('a'),
                pitchtools.NamedPitchClass('d'),
                pitchtools.NamedPitchClass('ef'),
                pitchtools.NamedPitchClass('b'),
                ],
            ]
        )

PitchClassTree will be supplied with an __illustrate__() method in a future
commit.

This will allow clean visualization of nested (or 'imbricated') pitch-class
structures.