Extended Editor with generalized _edit() method. MODEL.

MODEL: the method is the foothold by which the (previously somewhat abstract)
Editor class will be able to edit any class that implements the new 'editor
protocol'. What will comprise the editor protocol? Any class that declares how
it can be edited will satisfy the editor protocol. The current way that that is
being done is by implementing a private _target_manifest property.

Here's an example of the Editor._edit() method being used to edit a clef:

    >>> session = scoremanager.core.Session(is_test=True)
    >>> editor = scoremanager.editors.Editor(session=session)
    >>> editor._edit(target_class=Clef)

    Clef

        1: clef name (nm):

        done (done)

    > nm

    Clef name> alto

    Clef

        1: clef name (nm): alto

        done (done)

    > done

    >>> editor.target
    Clef(name='alto')

The integration path will be to implement _target_manifest properties first on
atomic indicators (Clef, Markup, PitchRange, Tempo) and then on inventories
(ClefInventory, MarkupInventory, PitchRangeInventory, TempoInventory).

Instrumentation classes and rhythm-maker classes will be migrated last.