Ensure code fixes work even it parts are missing
Rename TextBufferTests to SourceTextTests
Verify that SourceText.From has a static container
Remove superfluous parentheses
Add unit tests for TextSpan
Ensure caret position is maintained when performing code fixes

This adds the concept of text changes to SourceText. When modifying the
syntax tree, we record the modifications in the underlying source text.
This allows us to reply them later against the code editors.

By replying it, the editors do a good job of positioning the caret in
much more sensible way.