Don't traceback on SvnErrors.

Since the console script was calling svnwrap.main() directly, SvnErrors
would propagate through to the user as a traceback.  Instead, let's have
a routine that will handle SvnErrors, but still call main().  Finally,
use this new routine as the entry point for the svnwrap script.
Bump version to 0.4.5.
Add "rel:" keyword for /tags/release area.
Consolidate the color scheme into a dictionary.

This centralizes the definition of the colors in preparation for the
next step: allowing users to customize the colors.
Allow the color scheme to be customized.
Merge branch 'js/support-custom-colorscheme'
Use getEnviron() to remove some redundancy.
Handle failure of svnGenInfo() on invalid path.
Add newline to mergeraw help text.
Add --debug flag.
Leave peg revision unmolested after keyword (e.g., "tr:@55").
Re-implement "svn switch" using new adjustUrlForWcPath() function.
Handle peg revisions in adjustUrlForWcPath().
Adjust URL tail(s) for "svn merge".
Catch keyboard interrupt and exit quietly.
Unify windows platform detection logic.
Rename svnwrap .init routines and add support Subversion config.
Stop capturing "svn" stderr output.

stderr does not need to be higlighted or squelched, and it sometimes
contains prompt strings as partial lines that the wrapping logic cannot
display until a subsequent unrelated newline comes along.  This is
particularly true during a merge conflict, where stderr contains
a menu ending in a partial line, e.g.:

Select: (p) postpone, (df) diff-full, (e) edit,
        (mc) mine-conflict, (tc) theirs-conflict,
        (s) show all options:  <== cursor ends up here
Add "exectty" subcommand for use when svn launches an editor.

Sometimes svn wants to launch an editor, such as when a merge conflict
occurs.  When svnwrap is capturing stdout (for example, to highlight the
output), it has stdout connected to a pipe, which is unsuitable for an
editor.  The "exectty" subcommand allows svnwrap itself to be a
front-end for the editor.  It duplicates the stderr file descriptor
(which presumably is still connected to the terminal) onto stdout, then
re-execs the passed-in command-line options.  With the present change,
svnwrap now detects the configured editor and inserts "svnwrap exectty "
in front of the original editor definition, allowing stdout to be
re-connected to the terminal.
Switch to double-quotes throughout.