Introduced "depot" for (U), (D), (K), (M), (G), (Y). TERMINOLOGY.

IDE now distinguishes systematically between (m) for 'materials directory' and
(M) for 'materials depot'.

This provides a name for the menuing provided by (M) and friends. The word
'depot' differs enough from 'view' to keep the two concepts clear: it makes
sense to apply a view to the materials depot. And it makes just as much sense
to apply a view to the materials directory.
Changed 'scores depot' to 'scores'.

All other uppercase commands continue model a depository.

But the terminology just seemed unnecessary for the scores visible at (S).
Updated views for previous commits.
Added transpose keyword to PitchSegment.rotate().

This is analogous to PitchClassSegment.rotate(expr, transpose).
Adjusted ignored package names in AbjadAPIGenerator.
Updated check tests for previous commit.
Implemented __radd__ on TypedTuple.

You can now do this:

    >>> pitch_segment = pitchtools.PitchSegment("c' d' e'")
    >>> ("f'",) + pitch_segment
    PitchSegment(["f'", "c'", "d'", "e'"])
Implemented NamedPitch.invert() and NumberedPitch.invert().
Streamlined StorageFormatSpecification.
Updated function call count test.
Made LilyPondCommand initializer explicit. CHANGE.

OLD: LilyPondCommand.__init__(*args).

NEW: LilyPondCommand.__init__(name, format_slot=None).

The new initializer is self-documenting. The old initializer was the opposite
of self-documenting.

CHANGE: you can no longer initialize one LilyPond command from another.
LilyPondCommand(command) no longer works. Use new() or copy.copy() instead.

This closes GitHub #307.
Improved autoeditor.

You can use (done!) in the autoeditor now just like (done).

(done!) previously raised an exception in the autoeditor.
Wrote TypedOrderedDict.__copy__() and __deepcopy__() tests.
Added __slots__ to ViewInventory.

This makes it possible to use copy.copy() and copy.deepcopy() on ViewInventory.

Wrote __copy__ and __deepcopy__ tests for ViewInventory.
Autoeditor now publishes state in (EDIT) versus (EDIT+).

Autoeditor tracks target state. When target has changed the (EDIT) breadcrumb
changed to (EDIT+).

Use of (+) to denote change is taken from Vi.

Example:

    Red Example Score (2013) - materials directory - tempo inventory (EDIT)

       1: 8=72
       2: 8=108
       3: 8=90
       4: 8=135

          elements - add (add)
          elements - move (mv)
          elements - remove (rm)
          editing - done (done)

    |> add
    Element]> ((1, 8), 136)

    Red Example Score (2013) - materials directory - tempo inventory (EDIT+)

       1: 8=72
       2: 8=108
       3: 8=90
       4: 8=135
       5: 8=136

          elements - add (add)
          elements - move (mv)
          elements - remove (rm)
          editing - done (done)

    |> rm 5
    Elements]> 5

    Red Example Score (2013) - materials directory - tempo inventory (EDIT)

       1: 8=72
       2: 8=108
       3: 8=90
       4: 8=135

          elements - add (add)
          elements - move (mv)
          elements - remove (rm)
          editing - done (done)

    |> q
Added ImportManager.import_material_packages().

The method helps import all material packages in an AbjadIDE-managed score's
material library.

To use, add the following lines to the initializer in your score's materials
subpackage (i.e. my_score/materials/__init__.py):

    from abjad.tools import systemtools

    systemtools.ImportManager.import_material_packages(
        __path__[0],
        globals(),
        )

The method inspects every valid Python subpackage inside the materials
subpackage. If those subpackages contain an `output.py` file, that module will
be imported and the material contained therein matching the name of that
subpackage will be imported into the global namespace of the `materials`
module.

For example, in a score package named `zaira` with the following materials
defined:

    materials josiah$ ls -1
    __init__.py
    __metadata__.py
    glass_harmonic_field/
    instrumentation/
    magic_numbers/
    proportions/
    stone_harmonic_field/
    talea_rhythm_maker/
    tempi/
    wooden_harmonic_field/

... we get these contents when importing the `materials` subpackage:

    >>> from zaira import materials
    >>> for x in dir(materials): x
    ...
    '__builtins__'
    '__doc__'
    '__file__'
    '__name__'
    '__package__'
    '__path__'
    'glass_harmonic_field'
    'instrumentation'
    'magic_numbers'
    'proportions'
    'stone_harmonic_field'
    'talea_rhythm_maker'
    'tempi'
    'wooden_harmonic_field'

The public names above are not bound to modules, but to whatever was defined in
the output with the same name:

    >>> print(format(materials.talea_rhythm_maker))
    rhythmmakertools.TaleaRhythmMaker(
        talea=rhythmmakertools.Talea(
            counts=(1, 3, 2, 2, 1, 2),
            denominator=32,
            ),
        split_divisions_by_counts=(2, 3),
        extra_counts_per_division=(1, 0, 0, 0),
        beam_specifier=rhythmmakertools.BeamSpecifier(
            beam_each_division=True,
            beam_divisions_together=False,
            ),
        burnish_specifier=rhythmmakertools.BurnishSpecifier(
            burnish_divisions=False,
            burnish_output=False,
            ),
        duration_spelling_specifier=rhythmmakertools.DurationSpellingSpecifier(
            decrease_durations_monotonically=True,
            ),
        tie_specifier=rhythmmakertools.TieSpecifier(
            tie_across_divisions=True,
            tie_split_notes=True,
            ),
        )

`ImportManager.import_material_packages()` removes both the names
`ImportManager` and `systemtools` from the global namespace after it performs
its automatic imports.
Documented ImportManager.import_material_packages().
Updated count function calls test.
Removing unknown command calls from tests.

There is now a private session variable ...

    Session._allow_unknown_command_during_test

... that you can set to true on any test session if you are explicitly testing
the acceptability of unknown input during a test.

The variable defaults to false and causes all other tests to fail immediately
when unknown input is encountered.
Updated menu tests.