LocalConsole logs to the local browser
console. On iOS devices it uses console.info
for all levels because of a
bug in WebKit whereby other log levels don't show in some remote debuggers.
Also, iOS console only supports a single argument, so it joins the given
arguments as a single string.
RemoteConsole connects to a remote socket.io server and logs messages to it.
Console holds a LocalConsole and optionally a RemoteConsole and logs to both.
Logger holds a Console and implements debug at 10 different levels. The maximum logged level is configurable. Also emits a prefix in debug messages that identifies the instance.