fix one way that rectangles could have the left side be to the
right of the right side
Implements a rb-tree based version of the token tree, and fixes bugs in red-black.rkt.

A few invariants involving subtree-width and black-height balance
could break if singleton nodes were reused; bugs were due to stale
data in the nodes.

The token tree implements the implicit interface in the original
splay-based token tree module in syntax-color/token-tree.  However, it
does not appear to perform significantly differently in the case of
indentation yet.  It needs some additional profiling and analysis to
see if we can take advantage of the richer structure in the rb tree.
fix some right/top mixups

closes PR 13312
Optimize stick-to-next-sexp? to speculative match before using forward-match.

Profiler output suggests that forward-match is a bit expensive.  Here
is profiler output from the original code, when profiler is wrapped
around tabify-selection:

------------------------------------------------------------------------------------------------------------
                                  loop [34]                                                             0.1%
                                  get-backward-sexp method in ...k/private/racket.rkt:425:2 [28]       99.9%
 [37] 50648(61.1%)     0(0.0%)  stick-to-next-sexp? method in ...k/private/racket.rkt:425:2 ...
                                  do-forward-match method in ...rk/private/color.rkt:71:2 [50]         99.9%

...

------------------------------------------------------------------------------------------------------------
                                  get-forward-sexp method in ...k/private/racket.rkt:425:2 [38]        17.1%
                                  stick-to-next-sexp? method in ...k/private/racket.rkt:425:2 [37]     82.9%
 [50] 61043(73.6%)    53(0.1%)  do-forward-match method in ...rk/private/color.rkt:71:2 ...
                                  colorer-driver method in ...rk/private/color.rkt:71:2 [66]           99.8%
                                  match-forward method in paren-tree% [72]                              0.1%
------------------------------------------------------------------------------------------------------------

The patch does the prerequisite string matching before calling forward-match.

Reference to dev list: http://lists.racket-lang.org/dev/archive/2012-November/010976.html
Index `raco scribble` command

Relevant to PR 12956
Index `raco pkg` command
Add doc pages for remaining `raco` commands

Closes PR 12956
make unhighlight-range remove only the first matching range, not
all of the matching ranges
clean up the text:searchable docs based on recent changes
change 'case' to use equal?
make `case' in `r5rs' and `r6rs' still use `eqv?'

Also, make both `case' and `cond' disallow internal definitions,
instead of inheriting the `racket' behavior.
add a little more info into the build-rectangle check for when it fails
FV: creation graph nodes now hold more data (change for future improvements).  Also, Rackety
FV: Make cg node sizes variable, Rackety (fold this commit)
Incremental commit toward polymetric view in creation graph
More polymetric view stuff (fixed negative-size bug with rects)
More polymetric stuff, layout looking much better
More polymetric stuff
FV: add summary display to mouseover in create graph
FV: add colors as variable node attribute in creation tree