Implemented NamedPitch.from_staff_position(staff_position, clef=None). NEW.

Removed ...

    NamedPitch.from_absolute_staff_position(staff_position)
    NamedPitch.from_clef_and_staff_position(staff_position)

The new method generalizes the other two.

Example 1: from absolute staff positions:

    >>> for n in range(-6, 6):
    ...     staff_position = pitchtools.StaffPosition(n)
    ...     pitch = NamedPitch.from_staff_position(staff_position)
    ...     message = '{!s}\t{}'.format(staff_position, pitch)
    ...     print(message)
    StaffPosition(-6)       d
    StaffPosition(-5)       e
    StaffPosition(-4)       f
    StaffPosition(-3)       g
    StaffPosition(-2)       a
    StaffPosition(-1)       b
    StaffPosition(0)        c'
    StaffPosition(1)        d'
    StaffPosition(2)        e'
    StaffPosition(3)        f'
    StaffPosition(4)        g'
    StaffPosition(5)        a'

Example 2: from treble staff positions:

    >>> clef = Clef('treble')
    >>> for n in range(-6, 6):
    ...     staff_position = pitchtools.StaffPosition(n)
    ...     pitch = NamedPitch.from_staff_position(
    ...         staff_position,
    ...         clef=clef,
    ...         )
    ...     message = '{!s}\t{}'.format(staff_position, pitch)
    ...     print(message)
    StaffPosition(-6)       c'
    StaffPosition(-5)       d'
    StaffPosition(-4)       e'
    StaffPosition(-3)       f'
    StaffPosition(-2)       g'
    StaffPosition(-1)       a'
    StaffPosition(0)        b'
    StaffPosition(1)        c''
    StaffPosition(2)        d''
    StaffPosition(3)        e''
    StaffPosition(4)        f''
    StaffPosition(5)        g''

NEW: should be included in the 2.16 release notes.