improve logging and add method entry/exit instrumentation

Here's a first take at some improvements to logging, per discussions with @marco-c in IRC.

This changeset adds the logConsole and logLevel URL params, where logConsole can be any comma-separated combination of *web* (the Web Console), *page* (the in-page console), and *native* (the native console, i.e. *dump*); and logLevel can be any of the values *trace*, *log*, *info*, *warn*, *error* (in that order of severity). Messages at or above the specified log level will be logged to the specified consoles.

I also went through the various `console.*` calls and changed their severities where appropriate. And I added a primitive mechanism to instrument method entry/exit, so we can log within non-native methods without having to modify their Java source. I'd like to add some tests, although I'm not yet sure how to implement them.

This function gets a single character at a time, with no notice that the stream has been opened or will be closed. But we may be able to instrument the stream further, buffering this output until the stream is closed, then logging the output all at once in a more visible way. I'll look into it.