ConsoleAppender support for "appendStrings: false" option (#5)

Layouts now implement the "toMessageBits" function instead of the
"toMessageString" function.

The console appender now preserves objects if so requested. The code
is slightly more complex to read and understand because it needs to
manipulate strings and objects instead of just strings but, hey,
that's worth it, isn't it?

The "console" shortcut should now sets the "appendStrings" flag
correctly, depending on whether it detects a node.js environment
(where preserving objects does not any real purpose) or a browser
environment (where the console gladly accepts objects).