Add a virtual BuildClassDeclaration method to CSharpCodeBuilder.

This extensibility point needs to be an override and not a pure visitor due to how the class declaration is created (only 1 right way to write the class).

#76