Show finest messages too, allow custom console LogLevel
logger: Use different method to enforce auto-scroll

Prevent WebScarab from crashing after logging binary data:

java.util.logging.ErrorManager: 1
java.lang.IllegalArgumentException: TextHitInfo is out of range
        at java.awt.font.TextLayout.checkTextHit(TextLayout.java:771)
        at java.awt.font.TextLayout.getCaretInfo(TextLayout.java:1211)
        at java.awt.font.TextLayout.getCaretInfo(TextLayout.java:1313)
        at javax.swing.text.GlyphPainter2.getSpan(GlyphPainter2.java:82)
        at javax.swing.text.GlyphView.getPartialSpan(GlyphView.java:330)
        at javax.swing.text.GlyphView.getMinimumSpan(GlyphView.java:556)
        at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:731)
        at javax.swing.plaf.basic.BasicTextAreaUI$PlainParagraph.calculateMinorAxisRequirements(BasicTextAreaUI.java:272)
        at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
        at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
        at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
        at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
        at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
        at javax.swing.text.BoxView.layout(BoxView.java:708)
        at javax.swing.text.BoxView.setSize(BoxView.java:397)
        at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
        at javax.swing.plaf.basic.BasicTextUI.modelToView(BasicTextUI.java:1046)
        at org.owasp.webscarab.ui.swing.UIFramework$TextScroller.insertUpdate(UIFramework.java:919)
        at javax.swing.text.AbstractDocument.fireInsertUpdate(AbstractDocument.java:202)
        at javax.swing.text.AbstractDocument.handleInsertString(AbstractDocument.java:749)
        at javax.swing.text.AbstractDocument.insertString(AbstractDocument.java:708)
        at javax.swing.text.PlainDocument.insertString(PlainDocument.java:130)
        at org.owasp.webscarab.util.swing.DocumentHandler$1.run(DocumentHandler.java:97)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
        at java.awt.EventQueue.access$200(EventQueue.java:103)
        at java.awt.EventQueue$3.run(EventQueue.java:688)
        at java.awt.EventQueue$3.run(EventQueue.java:686)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
        at org.owasp.webscarab.util.swing.TextComponentContextMenu.dispatchEvent(TextComponentContextMenu.java:32)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Strip "invisible" control characters from log output

The log output is also written to the console where certain characters have
a special meaning. ESC can be used to change colors, BEL rings the bell, DEL
removes the previous character... these side-effects are unwanted, hence remove
it from the log output.
Merge pull request #10 from Lekensteyn/fixes

Log-related fixes