New function dumpOn() and changes to printOn()

To make the printOn() function more useful in application programs, it has been changed to print minimal formatting information, the idea being that this can frequently be added by an application to suit its specific needs. The virtual function dumpOn() has been added to assist in debugging by printing more detailed information than printOn(). Object::dumpOn() prints the name of an object's class, a left square bracket ("["), calls printOn(), then prints a matching right square bracket and a newline ("]
n"). Collection::dumpOn() does the same, except that it applies dumpOn() to all objects in the collection instead of calling printOn(). Other classes reimplement dumpOn() to print more appropriate information.

By default, dumpOn() sends its output to cerr. A default argument has also been added to printOn() so that it writes to cout by default.