Inside `git filter-branch --tree-filter` we must format all tracked
files because formatting of the tree for each commit is independent
from earlier commits.
Now that our one-shot clang-format run is complete we rarely need to
filter the entire tree anymore. Filter nothing if no options are given
and just print the usage message. Offer options to specify selection of
some set of files from Git as needed for various workflows.
List all sources in version control and filter out those that we should
not format for various reasons. Then run the clang-format tool to do an
in-place update.