Lps 49294 source formatter backup

The final version of what Shuyang started quite a while ago. This change has the latest version of check finalable fields, formatting to prevent regeneration from causing lines to go over 80 chars,  as well as a few refactors or changes to files to preempt other issues that would arise. Note that finals are now added to fields in all nested classes if applicable.

@shuyangzhou