Get rid of remaining uses of AXObject::elementRect

This change is mostly refactoring and deleting with just a bit of new code.

There were a few places we were still using AXObject::elementRect inside of
Blink. Fix those and replace them with the new AXObject::getRelativeBounds or
a new function AXObject::getBoundsInFrameCoordinates for cases where we do
need absolute frame-relative coordates.

There were a few subclasses of AXMockObject that didn't support
getRelativeBounds yet but weren't migrated earlier because they had no
test coverage for their bounding rects. Fix those and add new tests to
cover them.

To make it easier to implement those, I moved the implementation of
getRelativeBounds from AXLayoutObject to AXObject, and made it dependent
on a new protected virtual method layoutObjectForRelativeBounds().
If a subclass of AXObject wants its bounds computed all it needs to
do is implement layoutObjectForRelativeBounds() and the rest is done
for it.

BUG=618120

Review-Url: https://codereview.chromium.org/2287433003
Cr-Commit-Position: refs/heads/master@{#417028}
31 files changed