Properly handle errors for project search / replace

It displays the errors in the results pane. Catches errors like permission issues, non-existent files, etc.

Fixes #197. Refs #192 and #242