Refs #8730. The once_flag doesn't have initializer now when defined by the BOOST_LOG_ONCE_BLOCK macro. This is done in order to guarantee it is initialized at static initialization stage even on (theoretical) compilers that would not do so if the initializer is present. The BOOST_LOG_ONCE_BLOCK_FLAG macro has been fixed so that it actually uses the flag variable specified in its argument. The flag itself is now a single byte internally in order to minimize the chance of reading an inaccurate value at the fast path. The test robustness improved.