Added inspect().get_attached_item() and inspect().get_attached_items().

NEW: you can now attach anything you want to any component.

Example. Here we create a note and attach two arbitrary strings and an integer:

    >>> note = Note("c'4")
    >>> attach('foo', note)
    >>> attach('bar', note)
    >>> attach(17, note)

This does nothing to the LilyPond format of the note:

    >>> f(note)
    c'4

You can get all attached items:

    >>> inspect(note).get_attached_items()
    ('foo', 'bar', 17)

You can get all strings:

    >>> inspect(note).get_attached_items(str)
    ('foo', 'bar')

You can get all integers:

    >>> inspect(note).get_attached_items(int)
    (17,)

You can get all strings equal to 'foo':

    >>> inspect(note).get_attached_items('foo')
    ('foo',)

You can get all integers equal to 17:

    >>> inspect(note).get_attached_items(17)
    (17,)

You can get all integers equal to 99:

    >>> inspect(note).get_attached_items(99)
    ()

And you can get the one string equal to 'foo' directly:

    >>> inspect(note).get_attached_item('foo')
    'foo'

Detaching works as you would expect:

    >>> detach(str, note)
    ('foo', 'bar')

    >>> inspect(note).get_attached_items()
    (17,)

NOTE: this provides a very general way of attaching and detaching arbitrary
objects to any score component.

NOTE: what is not yet included is a way of specifying the target context of
attachment. This means that item attachment can currently replace all
(noncontext) marks but can not yet replace context marks. So annotations and
articulations will be replaceable with the machinery implemented so far.

                                     * * *

This commit also teaches the formatting system to recognize multipliers
attached to components. This effectively replaces the dedicated
lilypond_duration_multplier property entirely.

Example: Here is a staff:

    >>> staff = Staff("c'1 d'4 e'4")
    >>> f(staff)
    \new Staff {
            c'1
            d'4
            e'4
    }

We attach a vanilla multiplier to the first note:

    >>> attach(Multiplier(1, 2), staff[0])
    >>> f(staff)
    \new Staff {
            c'1 * 1/2
            d'4
            e'4
    }

And then detach the multiplier:

    >>> detach(Multiplier, staff[0])
    (Multiplier(1, 2),)
    >>> f(staff)
    \new Staff {
            c'1
            d'4
            e'4
    }

DEPRECATED: The LilyPondDurationMultiplier class is deprecated. Use
attach(Multiplier, leaf) instead.

DEPRECATED:  The lilypond_duration_multiplier property is deprecated. Use
attach(Multiplier, leaf) instead.