Scott Hunt thanks for working on this. It is a big patch, let me check whether it still applies. Probably needs rebasing.
I had to make a some guesses at what might be the desired style. Feel free to tell me where I need to make more changes. (i.e. I may have ended up under-using using statements for someone's taste.)
The standard practice is to use the clang-format tool to format the patches automatically so that everyone will use the same exact styling. There is a script under bin/format-code.sh which can be run inside the docker environment (bin/start-docker.sh).
I didn't touch any -test.cc files. I can do these if desired.
These are lower priority, but the cleaner the better. We can do a different issue.
While compiling, I encountered quite a few gcc warnings (primarily on constructor initializer order.) I have a further patch which attempts to clean all those up.
Sounds good. The patch is pretty big anyways, let's do a follow up patch.