added configurable logging handler



By default n2o will use n2o_log module. A minimal custom logger should have implemented 3 methods info/3, warning/3, error/3.

```
> wf:info("test").
ok

=INFO REPORT==== 2-Oct-2014::19:57:15 ===
wf:test
3> wf:info("test ~p", [1]).

=INFO REPORT==== 2-Oct-2014::19:57:30 ===
wf:test 1
ok

4> wf:info(index, "event(~p)", [init]).

=INFO REPORT==== 2-Oct-2014::19:57:55 ===
index:event(init)
ok

```


Example (implemented 3 basic methods and critical/2 which is available through wf:log(n2o_epic_logger, "boom", [], critical)):

```erlang
-module(n2o_epic_logger).
-export([info/3, warning/3, error/3]).
-export([critical/3]).

info(_Module, String, Args) ->
    io:format("Epic info message:" ++ String, Args).

warning(_Module, String, Args) ->
    io:format("Epic warning message:" ++ String, Args).

error(_Module, String, Args) ->
   io:format("Epic error message:" ++ String, Args).

critical(_Module, String, Args) ->
   io:format("Epic critical message:" ++ String, Args).
```

Config:
```
{n2o, [
  {log_backend, n2o_epic_logger}
]}
```