make rebar_log backends configurable

This allows to redirect output using user-specified functions
in the app config using `log_function` and `console_log_function`
variables.

For example:

{rebar, [
    {log_function, {error_logger, info_msg}},
    {console_log_function, {error_logger, info_msg}}
]}
convert io:format/2 calls to ?CONSOLE for consistency
Merge branch 'configurable-logger'