Implement support for %#v and %#+v in Formatter.

This commit implements feature request #3.  In particular, it allows the
formatter to respond to %#v and %#+v.  The # flag (%#v) adds type
information to the output and the combination of the # and + flags (%#+v)
adds both type information and pointer information.  This allows the
consumer a choice between displaying types, pointer information, or both.