Move custom element definitions into ElementRareData

Instead of keeping a separate hash map we should just store this
information in the ElementRareData. This simplifies the implementation and
in practice will likely reduce memory usage since almost all custom elements
we've seen so far touch something that ends up making them use rare data like
childNodes, attributes, tabIndex, classList or dataset.

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

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