Make Logger.format() more consistent with other Loggers. (See backwards-incompatibility note)

In particular, this now takes a prefix message so it formats to a string like:
message [key=value, key=value, ...]

Backwards-Incompatibility Note: Due to the varargs parameter on the old version, any old code with at least two arguments expecting the old signature will continue to compile and will produce unexpected results, however it seems like most everything was using it thinking it was the consistent new way anyway.