Add clang-format rules and makefile targets

Will commit the result in the next changeset.

Also, had to update to a newer version of LLVM to get some new clang-format options.
We don't necessarily have to use the same version of clang-format as the version of
llvm that we build it against, but if we can it keeps the build system simpler.
Run clang-format ("make format") on the codebase

Changed the indentation of pretty much the entire codebase.

It did some things that I don't like that seem not configurable,
but overall it seems like an improvement, and nice to have a
canonical format going forward.
Add some notes about formatting