Merge new commits through dd841cbcdafa from https://re2.googlecode.com/hg.

These commits are new:

(dd841cbcdafa) re2: Wrap unguarded uses of LOG(ERROR), testing options.log_errors().
(7bf5e87ef4e8) doc: add mksyntaxgo
(4fb3f19c0148) re2: fix type mismatch in DFA::Search

The (4fb3f19c0148) commit fixes a warning that occurs when the re2 code is
built with Clang 3.2.

Preserve local modifications.  This list should be exhaustive:
 - Add the libre2.pro file.
 - Remove Makefile and re2/Makefile.
 - Stub out the USE_CXX0X-controlled inclusion of tr1/unordered_set.
 - Guard HAVE_PTHREAD/HAVE_RWLOCK with
   defined(__unix__) || defined(__APPLE__).
 - Replace defined(WIN32) with defined(_WIN32).
Clang 3.2 build support: turn off the -Winitialized warning on Qt code.

This warning breaks with Qt 4.8.1, which is the current version in Ubuntu
12.04.  It's fixed in Qt 4.8.3.

In file included from /usr/include/qt4/QtCore/qsharedpointer.h:50:
/usr/include/qt4/QtCore/qsharedpointer_impl.h:595:43: warning: field 'd' is
      uninitialized when used here [-Wuninitialized]
    inline QWeakPointer(X *ptr) : d(ptr ? d->getAndRef(ptr) : 0), value(ptr)
                                          ^

The problem is that some Qt code initializes a "d" member variable using an
expression like "d->getAndRef(ptr)", where getAndRef is a static method.
Technically, this initialization accesses "d" and invokes undefined
behavior, but because it's a static method call, the "d" is unneeded, so
the code tends to work.

AIUI, because d->getAndRef(ptr) invokes undefined behavior, a clever
compiler could decide that the code must not be reachable and optimize it
away.  Hopefully compilers will not be clever on this Qt code.  Perhaps the
read of "d" disappears before the compiler gets around to doing analysis
like this.

The warning is logged as a Clang bug report, and it's possible that Clang's
behavior will change in the future.
 - http://llvm.org/bugs/show_bug.cgi?id=13127

It appears that Qt fixed this issue:
 - Qt5:
    - http://qt.gitorious.org/qt/qtbase/commit/88cf9402e336fddeb673c92f3c14da47a9f8450b
    - Change-Id: I37d2c4ea54febd40410ca473c906bcb1c66c4974
    - https://codereview.qt-project.org/#change,28837
 - Qt4:
    - http://qt.gitorious.org/qt/qt/commit/0e595ad22db04141bfbd6093824cdcc775fd371d
    - Change-Id: I02a9a1b73f7c18e8342aafeae412759f78086fa6
    - https://codereview.qt-project.org/#change,28838
Add an elfvinfo command-line utility.

 * elfvinfo queries ELF version information using evi_reader.  evi_reader
   (EVI == Elf Version Information) is a small ad hoc C99 ELF reader.
   elfvinfo is able to dump version information for any ELF file, including
   executables, files that do not successfully load, and files for
   non-native targets.

 * There is also an option to use dlopen to search for a library, and a
   sub-option for printing the absolute path of the dlopen-loaded library.

 * The intent of this change is to support wrapper scripts for SourceWeb
   executables that will query the DT_VERDEF and DT_VERNEED entries in the
   system libstdc++.so.6 shared object and in the SourceWeb executable.  If
   the system libstdc++.so.6 is too old, an alternate directory can be
   added to LD_LIBRARY_PATH to override it.
Ensure that the libbtrace.so LD_PRELOAD library is built with no rpath.
On Linux, reuse the index compiler as the build compiler, and use wrappers.

 * Many current Linux distributions lack a C++11 toolchain, such as the
   current stable release of Debian (6.0) and the latest CentOS (6.3).  I
   would like to support these distributions.

 * SourceWeb needs Clang 3.2 to index code, and Clang 3.2 is a suitable
   C++11 compiler.

 * It is convenient to reuse the indexing compiler as the build compiler,
   so this patch makes that the default configuration on Linux.

 * The Clang 3.2 compiler still needs a 4.6 or a 4.7 libstdc++ library.
   By default, Clang is configured to look at both the host system and its
   install directory for the newest libstdc++.  With the packages I created
   at the clang-redist-linux GitHub project, it is easy to build SourceWeb
   by extracting the clang-3.2 and gcc-libs-4.6 packages into a single
   tree, then passing that tree's path to configure.

 * Once SourceWeb is built, it will require a new enough libstdc++ at
   run-time.  This is handled by replacing the executables with wrapper
   scripts that examine the host system's libstdc++ and a wrapped
   executable.  If the wrapped executable needs a newer libstdc++ than the
   one on the host system, the LD_LIBRARY_PATH variable is set pointing to
   the --with-clang-dir directory.

   This solution deals with situations like:
    - The --with-clang-dir directory contains libstdc++-4.6, but the host
      system has libstdc++-4.7.  Clang is expected to link SourceWeb
      programs against the 4.7 library, so we must not use the 4.6 library
      at run-time.
    - The --with-clang-dir directory contains libstdc++-4.6.  The user
      upgrades their distribution from libstdc++-4.4 to libstdc++-4.7.  By
      delaying the libstdc++ override decision to run-time, we ensure that
      the older 4.6 library is no longer used.  (While the SourceWeb
      binaries should be OK with 4.6, the navigator links with the host's
      Qt libraries, which might require 4.7 on a 4.7 distribution.)

 * The real executables (and libbtrace shared object) are now in the
   libexec directory.  The wrapper scripts need to find the libexec
   directory, so I removed the configurable --bindir option.

 * Unrelated: Try to make libbtrace/btrace.sh safe for paths containing
   spaces.  I think such paths still break most parts of the project.
Qt 4.6 compatibility: Use QAction::setIcon instead of XML.

 * The 4.6 uic tool complains about the previous MainWindow.ui file with an
   "Unexpected attribute theme" error.  Presumably support for specifying
   themed action icons was added after Qt 4.6.

 * As of this change, SourceWeb builds and runs with Qt 4.6.