Logging2

This adds improved logging, with coloured formatting.

Each log call follows this pattern:

``` js
server.emit('log:<level>', [<subsystem/plugin>, <id>, <verb>, <data>])
```
If data can fit on one line, it will be printed on one line,
Else it will indented and displayed multiline. Objects will be json pretty printed (if they don't fit in one line)
multiline strings and errors are indented and displayed on the next line after the log line.