FormatManager as abstraction level to Format cmdlets.

The introduced FormatManager abstracts the actual formatting from the
FormatCommandBase cmdlet base class. This has the advantage that it can simply
be used in the OutCommandBase base class in order to format objects without
starting a separate pipeline. Also, the FormatManager can live along with the
Out-* cmdlet itself, so contiguous table output is possible.