Refactors the search results to be able to use paging in Replace All
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
Merge from tom/search-results
Use batchOperation() instead of edit op merging for replace all

Logically, this is a single operation, not a set of merged adjacent
operations, and we wouldn't want a second replaceAll done immediately
afterward to merge with it (though it would be difficult to get into that
case).
Integrate results panel with Replace in Files
Remove search panel templates that are no longer used
Improve Enter key behavior in Replace in Files

* hitting Enter in Find field sets focus to Replace field
* hitting Enter in Replace field starts the search