Simplify handling of SVGElementRareData

The previous implementation maintained a global map from SVGElement to
SVGElementRareData in order to avoid a field from SVGElement to
SVGElementRareData. This  is a rather complicated implementation that is much
less obviously correct than a simple OwnPtr. The SVGElement is already 21
pointers large (on 64 bit, perhaps more on 32 bit), so adding a 22nd pointer
seems like a small price to pay for a nice simplification in some code that has
had lifetime issues. Post-oilpan this is still a nice simplification. SVG is used
by less than 0.25% of pages, so I think that trading simplicity for a small
space penalty is justified. If at some future point, SVG becomes more popular
then we could get the space back by combining the 1-bit m_isContextElement
field with the m_SVGRareData field in one pointer-sized field. At the moment
that doesn't seem justified by the uses.

Kouhei, I'm afraid this will textually conflict with the stuff you are doing. I
won't land until after you.

R=kouhei@chromium.org, zerny@chromium.org, wibling@chromium.org
BUG=

Review URL: https://codereview.chromium.org/305453004

git-svn-id: svn://svn.chromium.org/blink/trunk@174857 bbb929c8-8fbe-4397-9dbb-9b2b20218538