Extended indicator scoping.

Indicators (like instruments) may now have their scope set to a string.

(Previously indicators could have their scope set only to an instance of an
Abjad context.)

What does this do?

1. This allows indicators (and especially instruments) to have their scope set
to a LilyPond context that is not modeled by an Abjad context class. (Example:
you can create an Abjad Percussion instrument that is scoped to LilyPond's
DrumStaff even though Abjad does not model the LilyPond DrumStaff explicitly.)

2. This change also allows indicators (and especially instruments) to have
their scope set to a custom context. (Example: you can create a Violin that is
scope to a ViolinStaff you have defined by hand in an external stylesheet.)

3. This change will also allow the deprecation of the Abjad PianoStaff class.
It will be enough to use StaffGroup instead and just set
staff_group.context_name = 'PianoStaff' (in parallel to staff.context_name =
'RhythmicStaff').