Magic now available.

You can now say ...

    >>> staff = Staff("c'8 d'8 e'8 f'8")
    >>> attach(Articulation('staccato'), staff)
    >>> f(staff)
    \new Staff {
            c'8 -\staccato
            d'8 -\staccato
            e'8 -\staccato
            f'8 -\staccato
    }

And ...

    >>> staff = Staff("c'8 d'8 e'8 f'8")
    >>> attach(indicatortools.BendAfter(-4), staff)
    >>> f(staff)
    \new Staff {
            c'8 - \bendAfter #'-4.0
            d'8 - \bendAfter #'-4.0
            e'8 - \bendAfter #'-4.0
            f'8 - \bendAfter #'-4.0
    }

And ...

    >>> staff = Staff("c'8 d'8 e'8 f'8")
    >>> attach(Markup('foo'), staff)
    >>> f(staff)
    \new Staff {
            c'8 - \markup { foo }
            d'8 - \markup { foo }
            e'8 - \markup { foo }
            f'8 - \markup { foo }
    }

And ...

    >>> staff = Staff("c'8 d'8 e'8 f'8")
    >>> attach(indicatortools.StemTremolo(32), staff)
    >>> f(staff)
    \new Staff {
            c'8 :32
            d'8 :32
            e'8 :32
            f'8 :32
    }

And ...

    >>> staff = Staff("c'8 d'8 e'8 f'8")
    >>> attach(Articulation('staccato'), staff)
    >>> attach(Markup('foo'), staff)
    >>> attach(indicatortools.StemTremolo(32), staff)
    >>> f(staff)
    \new Staff {
            c'8 :32 -\staccato - \markup { foo }
            d'8 :32 -\staccato - \markup { foo }
            e'8 :32 -\staccato - \markup { foo }
            f'8 :32 -\staccato - \markup { foo }
    }

And so on in a general way.

EXPLANATION: this commit teaches LilyPondFormatManager to scan indicator
expressions attaching not just to the component being formatted but to every
parent of the component being formatted. This makes it possible to do what's
shown here, for example, attach an articulation to a staff and cause the
LilyPond format of the articulation magically to appear on the every leaf in
the staff.

The output shown here results from structure. You will get this behavior for
free for any custom class you define whenever the following two conditions
hold:

    1. the class implements a LilyPond format
    2. you attach an instance of your class without specifying a scope

Note that you can continue to attach strings, dictionaries and numbers to
arbitrary components, too; none of these impact formatting because none of
these implement a LilyPond format (and thus fail condition #1 given above).