Alternate Static Protected Fix

This is an alternative implementation to #300.

Instead of changing the printing in `CSharpTextTemplate` we make the `CheckStaticClass` detect protected declarations and convert them to private ahead of time.

This lead to issues with filtering processes that would see non-override private declarations and try to filter them out of the generation.  To fix this I added a test to see if a declaration was explicitly set to be generated.