Introduce toSVGFontFaceElement, and use it

As a step to change static_cast with toSVGXXX, static_cast<SVGFontFaceElement*> can
be changed with toSVGFontFaceElement().

BUG=

Review URL: https://chromiumcodereview.appspot.com/21032002

git-svn-id: svn://svn.chromium.org/blink/trunk@155082 bbb929c8-8fbe-4397-9dbb-9b2b20218538
REGRESSION: Click on focused link should not remove focus on it.

This is a regression by wkrev.com/72796.

The first isMouseFocusable call in EventHandler::dispatchMouseEvent 
should be isFocusable because we need to do different things for
focusable-but-non-mouse-focusable elements.

Also fix wrong usage of isMouseFocusable in text shadow elements and
SVG elements. In general isFocusable must return true whenever
isMouseFocusable is true. Some layout tests fail without these changes.

BUG=264575

Review URL: https://chromiumcodereview.appspot.com/20670002

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