Fix a text palette bug that manifests on Windows.

 * On Windows, the foreground color of selected text varies depending upon
   whether the window is the foreground window or not.  The
   m_textHighlightedColor color in the SourceWidgetTextPalette object,
   however, is initialized in the constructor and is never updated.

 * Fix this problem by updating the default and highlighted text colors on
   each SourceWidgetView::paintEvent call.  Because these two QPen objects
   inside the SourceWidgetTextPalette can change, it's important that no
   syntax or symbol reuses these special colors, so modify
   SourceWidgetTextPalette::registerColor to skip over the special colors.
Add FileLocation::toString and FileRange::toString for debugging purposes.
Work around QTBUG-29220, a scrolling bug affecting Qt4 on Cocoa.

This workaround creates and scrolls a dummy widget of size (0, 0).  The
effect is to disable QMacScrollOptimization for the source widget.