Introduced _CPStateMarker class for markers

Previous NSString markers could have been valid values.

Note: the title of this issue was changed to reflect the part of the pull request that still remains of interest.