Formatter: remove mistaken assert in dump_stream()

dump_stream was complaining if there was a pending string (basically,
an item still open), but this is standard usage for the dump_*() operations;
you start one, and then it's closed when the next one comes along.
Remove the assert and let print_spaces() close the existing element
and indent-if-pretty, as usual.
mon: use new new_formatter() for formatted dumps

Any dump that could accept --format now can do json, xml, json-pretty,
or xml-pretty as a format.  There are more that are currently
JSON-only that we could conceivably change.
Use scoped_ptr for Formatter *