Import tinyformat
Str: add Str::Format
Log: First implementation of the Log system

Cf the thread on the forum for a detailed explanation (or the future doc).

Basically log sources and destinations are decoupled. Loggers can be
created for individual subsystems and take care of filtering based on
the log level. They also format the log and hand it to Log::Dispatch
that log to the right destinations.

This system will allow us to have
 1) more granularity in the debugging (com_developper is too verbose)
 2) different formating for different things (e.g. for the chatlog)
 3) things that appear in some destination and not others (having debug
in the HUD is not convenient).
 4) more...

The only change to the previous code is that Com_Printf now forwards to
Log::Dispatch.
Also used a logger in the command system.