logging: implement FATAL and DFATAL log levels
Summary:
Add new `FATAL` and `DFATAL` log levels.
Any log message with a level of `FATAL` always crashes the program. Log
messages with a level of `DFATAL` crash the program in debug build modes.
Before crashing, the code makes sure to flush all LogHandlers, so that the
fatal message is not lost if some of the LogHandlers process messages
asynchronously. If no LogHandlers were configured, the message is printed to
stderr.
Reviewed By: wez
Differential Revision:
D5189497
fbshipit-source-id:
c45dbd582fb1c3a962d00effb2967737ef97cc8b