Use dedicated class, _CPStateMarker, instead of CPString for selection markers.
Use UID instead of hash.
Fixed return type for _placeholderForMarker:
Fixed parameter type for _placeholderForMarker:
Added localization of tooltips with the standard localizer
Changed tooltip word to lowercase to follow other tooltip formatting
don't allow views from another window to be next/previouskeyViews
Fix #1284: Update Emacs documentation

Small fix to update documentation for emacs. Fixes #1284.
Merge pull request #1836 from kerusan/cpruleeditor_tooltip_localization

Fixed: CPRuleEditor tooltips were not localized

Tooltip text was hardcoded in English. Now they use the localizer.
Merge pull request #1837 from BlairDuncan/keyViewLoopInfinateLoopFix

Fixed: views from other windows cannot be next/previous key views

Previously, a view from another window could be set as the next/previous key view, which would result in unexpected behavior, including an infinite loop.

This commit ensures the proposed next/previous view belongs to the same window as the view to which it will be chained.
Merge pull request #1826 from stewa/non-string-markers

New: use dedicated class instead of CPString for selection markers

Previously, selection markers were strings, which allowed the possibility that user data could be mistaken for a selection marker.

With this commit, selection markers are global instances of a private class, removing the possibility of clashes with user data.
Fixed: optimize access to object property

Accessing a property via dot notation is faster than indexing via a string.
Typo: fixed spelling in comment
Merge pull request #1838 from ahankinson/fix-issue1284

Docs: path to objj mode was wrong in docs

Closes #1284
New: @ref and @deref in Objective-J 2.0.
Unit test @ref and @deref.
New: use @ref and @deref instead of Ref.h throughout Cappuccino.
New: optimise CPArray enumerateObjectsWithOptions:usingBlock:.
Fixed: CPNumberFormatter formatted @"" as any number.

Without this fix, `- CPNumberFormatter getObjectValue:forString:errorDescription:` would return `YES` for string @"", like if it was properly converted to an object value, but then actually leave object value unchanged.

With this fix object value is set to nil like in Cocoa.

Refs #1829.
Test: expand CPNumberFormatter test to be more complete.

- Cover the formatting of @"" to nil.
- Check error messages by reference.
- Check output values.
- use @ref() instead of hand coded AT_REF.

Refs #1829.