Distribute formatting decisions among different containers.

This is the beginning of a major overhaul of the experimental
reformatter. It looks large, but the main change is that it distributes
the work of deciding how to format things among the individual
containers. (It expands the number of containers to achieve this.) There
are somethings which are best formatted uniformly. E.g., a dictionary
looks best with each entry on a single line. Etc.