formatv() can now print objects with a operator<< accepting raw_ostream.
This covers a bunch of new types, and avoids needing a dependency between formatv and the type when no special formatting options are needed.
(Maybe formatv deliberately doesn't do this today?)
Error's new operator<< is the first way to print an error without consuming it, which allows it to work with formatv.
Is the space supposed to be before the 0?