clang-modernize: Apply replacements using clang-apply-replacements

Summary:
The clang-apply-replacements process is now invoked to apply
replacements between applying transforms. This resulted in a massive
simplification of the tool:
- FileOverrides class no longer needed.
- Change tracking and code formatting no longer needed.
- No more dependency on libclangApplyReplacements.
- Final syntax check is easier to do directly now than with a separate
  header/source pair.

Replacement handling stuff abstracted into a new header/source pair to
de-clutter ClangModernize.cpp somewhat.

Tests updated.

Reviewers: tareqsiraj, arielbernal, Sarcasm

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D1836
Addressing reviewer comments