Adding support for dynamic formatters instead of a dictionary in Reporter.m
removing the ExportedReporter protocol

Instead of using the ExportedReporter protocol to mark Reporters as
being public, we'll use reporterName - if it returns a string, then it's
public; if it returns nil, it's private.

Also moving the class introspection that hunts for Reporter classes into
+[Reporter allReporterClasses] instead of +[Reporter initialize].  We'll
soon have a plugin system, and it'll be important that we postpone
scanning for Reporters until later in execution.
show reporters + descriptions in xctool's usage

Changes -[Reporter reporterName] to -[Reporter reporterInfo], which
returns a dictionary with a name and description.