More magic.

You can now attach (nonscoped) objects to spanners:

    >>> staff = Staff("c'8 d'8 e'8 f'8 g'2")
    >>> spanner = spannertools.Spanner()
    >>> attach(Articulation('staccato'), spanner)
    >>> attach(spanner, staff[1:4])
    >>> f(staff)
    \new Staff {
            c'8
            d'8 -\staccato
            e'8 -\staccato
            f'8 -\staccato
            g'2
    }

The example attaches an articulation to a spanner which, in turn, attaches to
an arbitrary selection of notes.

The implementation was possible with the addition of a relatively small amount
of code. But the functionality should be considered experimental for now. A
fair number of tests will be required. And the behavior of scoped objects (like
clefs, key signatures and time signatures) is not yet defined; this also means
that the behavior of getting effective values of scoped indicators attaching to
spanners is not yet defined, either.

It seems like this should be the way the provide the functionality envisaged by
the "clef spanner" described in GitHub #166.

The functionality committed here will be left in the system but will remain
undocumented for the 2.14 release.