Base class for SummaryFormatter and DetailFormatter.
The two classes SummaryFormatter and DetailFormatter are actually
very similar in operation, and so most of their methods are defined here.
Both of them print out the definition of the declarations, including type,
parameters, etc. Some things such as exception specifications are only
printed out in the detailed version.