Move formatter protocol docs to a psuedo class.

As discussed in #1627, similar to how @myronmarston improved the matcher protocol docs, this moves the formatter protocol documentation out of the base formatter and into a psuedo class.