Added `indicatortools.KeyCluster`.

The indicator models notation for black-key and/or white-key clusters on a
keyboard instrument.

And it combines nicely with `indicatortools.Arpeggio` too:

    >>> chord = Chord("<c' e' g' b' d'' f''>8")
    >>> key_cluster = indicatortools.KeyCluster()
    >>> arpeggio = indicatortools.Arpeggio(direction=Up)
    >>> attach(key_cluster, chord)
    >>> attach(arpeggio, chord)
    >>> f(chord)
    \arpeggioArrowUp
    \once \override NoteHead.stencil = #ly:text-interface::print
    \once \override NoteHead.text = \markup {
            \filled-box #'(-0.6 . 0.6) #'(-0.7 . 0.7) #0.25
    }
    <c' e' g' b' d'' f''>8 \arpeggio
            ^ \markup {
                    \center-align
                            \concat
                                    {
                                            \natural
                                            \flat
                                    }
                    }

NOTE: This was made possible by the recent refactoring of the formatting
system. While not all indicators have been revised, any indicator implementing
a `_lilypond_format_bundle` property can introduce format contributions for any
slot in the `LilyPondFormatBundle` and `SlotContributions` classes.