This commit adds class ServoStyleRuleMap which caches the mapping from
raw Servo style rule to Gecko's wrapper object.
It is a per-document object, and is added as an observer of document
when constructed, so that it updates data inside when possible.
For safety consideration, this change also makes ServoStyleRule support
weak pointer, and use weak pointer inside ServoStyleRuleMap.
MozReview-Commit-ID: YxBnZ88tjf
--HG--
extra : source : 0f2bc306d27b8ab22f1aa08aa9d44af0dba4694d