TextFinder: find() should work with shadow trees.

The core of TextFinder::find() is Editor::rangeOfString(), which needs to
use Position-based text iteration (i.e. use findPlainText() taking Position
arguments) to be able to handle shadow trees correctly.

This patch fixes the implementation, and also does some cleanups of it.

Note that the new implementation is largely similar to what TextFinder::
scopeStringMatches() does; in the future, the two could be merged into one to
avoid code duplication.

Adds a few unit tests in TextFinderTest to confirm the behavior.

BUG=361521

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

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