Bug 1082899 patch 1 - Add a flags field to the CSS_PSEUDO_CLASS and related macros.  r=birtles
Bug 1082899 patch 2 - Add flags storage and accessors for nsCSSPseudoClasses.  r=birtles

The code for this is basically copied from nsCSSPseudoElements.
Bug 1082899 patch 3 - Add flag for marking pseudo-classes as UA-sheet only.  r=birtles
Bug 1082899 patch 4 - Rename existing flag for pseudo-elements to better match what it is (UA sheets, not chrome sheets, although EditorOverride is included).  r=birtles
Bug 1082899 patch 5 - Add :-moz-native-anonymous pseudo-class, exposed only to UA style sheets.  r=birtles  sr=bzbarsky
Bug 1082899 patch 6 - Convert touch caret code to using :-moz-native-anonymous so that it doesn't expose styles for magic attribute names to content.  r=birtles

Note that this leaves a few selectors with repeated classes of the form
.moz-touchcaret.moz-touchcaret .   This is intentional, so that these
changes don't change the relative specificity of any of the touch caret
selectors.

I tested locally on a Flame that using this without the ua.css changes
breaks the touch caret (it doesn't appear), but with the ua.css changes
the touch caret appears again.
Bug 1085626 - FullGCTimerFired doesn't need to pass around a reason. r=smaug