Format code (DO NOT MERGE)

This is not intended to serve as an example of what uncrustify can currently do, so I can tweak the config based on feedback.
Yes, you can indent with tabs and align with spaces.  I did not set that because that wasn't what was being used in the project.  I tried to make the configuration match the current code as best I could.  

As an aside, for this patch I did have to manually remove some whitespace changes though with git.  Specifically, uncrustify eats tabs on lines by themselves -- and there are a lot of lines like that in the source.  It might be relatively easy to patch it to add the tabs back in.