Move innerHTML and outerHTML to Element

Per the DOM Parsing specification, innerHTML and outerHTML should be
available on Element, not HTMLElement. Since HTMLElement and SVGElement
are the only interfaces that inherit from Element, the only Web visible
difference should be that innerHTML and outerHTML are now available for
SVG elements.

For <svg>.innerHTML = "<!-- svg elements here -->" to insert elements
with correct namespace URI, one adjustment has to be made to the tree
builder step of the html parsing algorithm. The changes are described in
the spec change <http://html5.org/r/7768>. The new concept of
'adjustedCurrentNode' is used when processing and when deciding to
process foreign content and makes sure that parsed elements go into the
correct namespace.

Some layout tests that (perhaps accidentally) use innerHTML and
outerHTML on SVG elements are adjusted slightly.

This is a re-land of 160869 https://codereview.chromium.org/44333002/

BUG=311080

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

git-svn-id: svn://svn.chromium.org/blink/trunk@160981 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Move Glyph related classes to platform/fonts

BUG=297477

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

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