Refactors the search results to be able to use paging in Replace All
Unify FindReplace and FindInFiles modal-bar templates. Get rid of some apparently unused bits.
Refactor find bar code out of FindReplace and FindInFiles and unify it into a new FindBar component.

There are still a few places in FindInFiles where it's monkey-patching directly into the FindBar's ModalBar. Hoping to eliminate those in future.
Reinstate scope label that was erroneously removed from earlier refactoring
Store query info in state instead of looking up in preferences
Reinstate proper logic for hitting Replace when only Find is open
Make regexp searches multiline in FindInFiles to match single-file behavior
Merge with Master
Several fixes and stuff
Implement basic textual find/replace in files

Also fixed a bug and dealt with some nonobvious asynchrony in one of the existing tests.
Don't replace on disk if the file has changed since we searched it
Add test for gracefully handling write failure
Do replacements in memory for files that are already open
Add way to force replacements to be done in memory instead of on disk
Handle regexp replacement
Start hooking up Replace in Files UI
Tweak Find Bar to only show Replace All... and relayout in replace-across-files case
Add logic to force in-memory replacements for 10 or fewer files, and add confirmation dialog. Clean up some unnecessary runs() in tests.
Add simple unit test for Replace All checkboxes
Add unit tests for paging Find in Files results