Improve "Format Selected Text".

Previously, only the fragment would be fed to clang-format. This meant
that if the text was already indented, the indentation would be thrown
away. Also, if a fragment of code was selected, it might be formatted
incorrectly, since clang-format didn't have context.

Now, it feeds the entire file, with a line range, to clang-format, and
then replaces what was changed. This is more in line with the vim and
Visual Studio integration. It uses clang-format's replacements XML to
apply code formatting.
Add option to use system clang-format, if it's in the path.

This is useful to install newer versions of clang-format from clang
releases or trunk, without having to update the binary bundled with this
plugin.
Make "Format Selected Text" work on empty selections.

In this case, it formats the region around the cursor. This is the same
behavior as in the vim and Visual Studio plugins.
Remove depedency
Add TRVSXMLDictionary
Parse xml using trvsxmldictionary
Pass in nsrange for the line range