Introduced the 'custom_identifier' property.

This commit changes TypedCollection.name to TypedCollection.custom_identifier.

The impact is large because many different parts of the codebase use typed
collections.

MODEL: 'custom_identifier' will eventually be the one and only way to refer to
user-given identifiers that refer to objects created with the system. The
majority of these are now taken care of because most of user-produced objects
afforded by the score manager are typed collections.

The introduction of custom_identifier clears the way for 'name' always and only
to refer to the central initializer value supplied to a core class. We will be
able to change Clef.clef_name to Clef.name, for example.