Fantomas code formatting feature

Complet, clean, cherry picked, and squashed commits.  this was rotting away so I have picked the commits and cleaned it up.

Any issues and we can log then with the Fantomas repo or here and get them fixed up.