Merge from google internal, fixing nested class injection/generation and add some extra ClassName tests.

We turned off checkstyle as it has frustrating inconsistencies with google style (even the modified google style we're using here to align with square a bit), but I'm surprised it survived our linter.  I'll fix it.