[mathml] Introduce base setup for MathMLElement under a MathMLCore flag

This prepares implementation of the MathML Core specification:
https://www.chromestatus.com/feature/5240822173794304

Minimal changes are applied to the build system in order to generate
element classes for MathML elements, similarly to how it is currently
done for HTML and SVG elements.

A folder third_party/blink/renderer/core/mathml is created with the json
files describing MathML attributes/elements as well as a simple
implementation of a new MathMLElement class. For now, no new MathML
attributes/elements are added and MathMLElement derives from Element
without performing any implementation change. MathMLElement also
contains standard helper functions in its header file.

A new experimental feature MathMLCore is also introduced. When it is
enabled, the document class will create MathMLElement instances for all
MathML elements. When it is disabled, it will continue to just create
Element instances.

No new tests are added since there is no visible behavior change,
independently of whether MathMLCore is enabled or not.

Bug: 6606
Change-Id: I59c2ad8f70383716c5514f2ab3c818bdc11cb8e2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1895661
Reviewed-by: Mason Freed <masonfreed@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Frédéric Wang <fwang@igalia.com>
Cr-Commit-Position: refs/heads/master@{#713215}
12 files changed