Plumb changes to the focused frame to WebFrameClient.

This is needed so that the browser process can know which frame to send edit commands to.

BUG=304341

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

git-svn-id: svn://svn.chromium.org/blink/trunk@168662 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Move SVGTextMetricsBuilder metrics computation state to a local helper class

Move all transient state, and methods operating on it, from
SVGTextMetricsBuilder to a locally defined helper class
(SVGTextMetricsCalculator).
This leads to a structure that better represents the life-time of the
state, as well as reduce the size of SVGTextLayoutAttributesBuilder (and
hence indirectly RenderSVGText.)

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

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