Basic Multi-file unit testing support

Added DoGlobalOperation and Rename support in `TestScript`.

How it works:
1. Each file has its own TestRefactoringContext
2. TestRefactoringContext.Create now takes a list of file contents. One of those files is considered the "main file", which is roughly the "active context" the actions/issues would be run in (the "active" file). The remaining contexts are the other files (which are still modified by DoGlobalOperation/Rename)
3. The new TestRefactoringContext.Create returns the main context
4. There is still the old Create overload for backwards compatibility.
5. I created a file named `MetaTests` (I called it that because it's tests that test test APIs) to show how it works.

This assumes that FindReferences.FindReferencesInFile is synchronous and that all callbacks are made sequentially.