• style: Rewrite the restyle hints code to allow different kinds of ele…

    …ment snapshots, and use it for Gecko.
    
    This is a rewrite for how style interfaces with its consumers in order to allow
    different representations for an element snapshot.
    
    This also changes the requirements of an element snapshot, requiring them to
    only implement MatchAttr, instead of MatchAttrGeneric. This is important for
    stylo since implementing MatchAttrGeneric is way more difficult for us given the
    atom limitations. This also allows for more performant implementations in the
    Gecko side of things.
    emilio committed Jul 21, 2016