CHEF-4725: Validate 'log_location' setting on log initialization

Previously, a Mixlib::Config setter method verified that 'log_location'
was set to a writeable file or a valid IO stream. Due to the way
Mixlib::Config handles `default` and `merge!`, this setter method would
not fire if the 'log_location' was left unconfigured or if it was set
on the command line, resulting in inconsistent error handling.

This commit moves the validation logic out of the configuration layer
and into the log initializion layer. This ensures that error handling is
consistent, regardless of where the 'log_location' setting is
configured. Validation logic is also simplified, relying on the
MonoLogger class to open and configure any necessary IO streams.
CHEF-4725: Disable buffering on all log streams

Centralize handling of log buffering to ensure it's always disabled.
Previously, an unconfigured 'log_location' setting would erroneously
fall back to a default STDOUT stream with output buffering enabled.
Fix indentation of rescue clause
Merge branch 'CHEF-4725'