Handle formatters that use a factory pattern to initialise.

@JonRowe this was fun to figure out :/

Fivemat does this: https://github.com/tpope/fivemat/blob/master/lib/fivemat.rb

This assumes it is safe to construct an instance of a legacy formatter before we know it's a legacy formatter, which I believe to be valid since the signature of the intializer has not changed.