Make manual isSVG*Element() helpers as efficient as the generated ones

Make manual isSVG*Element() helpers as efficient as the generated ones by
introducing a DEFINE_SVGELEMENT_TYPE_CASTS_WITH_FUNCTION() macro, similarly
to the DEFINE_HTMLELEMENT_TYPE_CASTS_WITH_FUNCTION(). This new macro is
used instead of DEFINE_ELEMENT_TYPE_CASTS_WITH_FUNCTION() for SVG types so
that the isSVG*Element() helpers leverage the faster
SVGElement::hasTagName(SVGQualifiedName) when possible (i.e. when the input
is an SVGElement*).

This is a follow-up to:
https://src.chromium.org/viewvc/blink?view=rev&revision=178540

R=pdr@chromium.org, abarth@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@178580 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Optimize / clean up hasTagName() call sites

Optimize / clean up hasTagName() call sites so that they call when possible
and in this order:
- HTMLElement::hasTagName(HTMLQualifiedName) / SVGElement::hasTagName(SVGQualifiedName)
- Node::hasTagName(HTMLQualifiedName) / Node::hasTagName(SVGQualifiedName)
- Element::hasTagName(QualifiedName)

Also use isHTML*Element() helpers in a couple of places to improve readability.

This is a follow-up to:
https://src.chromium.org/viewvc/blink?view=rev&revision=178540

R=abarth@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@178581 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Move commit list and builder latest revisions up to ct-unexpected-failures

Create a model directory for model classes. We should never be using
dumb objects as our model (even in tests!). Having explicit classes makes
more clear the types of the objects a component takes in. Also,
it gives a clear location for putting logic related to that bit of the
model.

Moving the commit list and the builder revisions up is a step in the
direction of enabling https://codereview.chromium.org/402603007. 

NOTRY=true

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

git-svn-id: svn://svn.chromium.org/blink/trunk@178582 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Move handle of HRTFDatabaseLoader to AudioListener.

Fix regression on specific application.

http://googlechrome.github.io/web-audio-samples/samples/audio/box2d-js/box2d-audio.html

Although a HRTFDatabaseLoader should keep the handle until AudioContext is destroyed,
a panner node tries to create the loader again since being removed the handle
by deref() of AudioNode.

The handle has been moved to AudioListener that is related mostly to keep the handle.

BUG=393751

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

git-svn-id: svn://svn.chromium.org/blink/trunk@178583 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Add first letter test when first letter is inside a floated block.

This CL adds a test for the RenderBlock::computePreferredLogicalWidths
call to updateFirstLetter. In the case where we don't call
updateFirstLetter we will incorrectly draw the word Foo flowing out
of the enclosing border.

BUG=391288

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

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