(Binary Clone Detection) Syntactic detection saves virtual addresses

We need to save the virtual address for each function in order to
be able to compare syntactic output with semantic output.
(Sqlite3) Added additional bind() functions.

sqlite3x.h was missing prototypes for bind() taking unsigned
values, and the signed arg promotion was ambiguous. Rather than
adding casts all over my code (which uses unsigned values almost
exclusively), I added some new prototypes.
(Binary Clone Detection) Changed the semantic schema a little

This is in preparation for combining semantic and syntactic
clone detection.
(Binary Clone Detection) Program to combine syntactic and semantic results
(SageBuilder) Moved a function template to a header file

"gcc -O3" had undefined references when linking because it
didn't instantiate the function template when it was used.
Moving the template definition to a header file solves the
problem.
(Binary Simulator) Clone detection output includes specimen file names
(Binary Simulator) Runtime choice whether to simulate a specimen core dump
(Binary Simulator) Clone detection work is done in SQL

In order to run semantic clone detection across multiple specimens
we need to fuzz test using the same input values as a previous run.
Also, we cannot short circuit the clustering algorithm once we
discover that a function is in a singleton cluster, because we might
be adding more functions in a later run.

Although run-time might be longer (because of no short circuiting),
the code size is smaller. All the code for actually figuring out
the semantic clusters from the fuzz testing results has been moved
from C++ to SQL.
(SQLite3) Added common text and math functions to SQLite3

SQLite3 is deficient in this area, so I found a plugin that
provides these functions and we distribute it as part of ROSE.

Modified the SQLite3x C++ wrapper so it automatically installs
the plugin.

Modified the SQLite3x C++ wrapper so it provides a public method
for installing user-specified plugins.
(Binary Simulator) Combined syntactic and semantic clone detection

The projects/simulator/clone_detection/analyze-clones.sh script
runs syntactic clone detection (from projects/BinaryCloneDetection)
and semantic clone detection (from projects/simulator), combines
the two databases, and prints the result.
(Binary Simulator) Ability to turn exception messages on or off
(Binary Simulator) Clone detection tweaks

* CloneDetection can be configured from the command line

* The "--debug" switch doesn't produce quite so much output
  for clone detection; just enough for progress reports. The
  full output is available by defining a CPP symbol.
(Binary Simulator) SQLite3 can't print hexadecimal, so write query in C++
(Binary Simulator) x86 INT throws an exception when not handled by simulator
(Binary Simulator) Clone detection generates a specimen listing

When doing semantic clone detection on a specimen named "/bin/foo",
the analyzer will generate an assembly listing named "foo.lst" in
the current working directory.
(Binary Simulator) Better incremental building for clone detection

The semantic clone detector skips functions that have already
been processed on a per-fuzz-test basis so that it can gracefully
recover from a previous analysis that was interrupted.
(SQLite3) More database locking options; comments to comply with license

* Added ability to obtain immediate write locks and exclusive locks in
  addition to the shared locking already implemented.

* Added comments about changes in order to comply with the license.
(Binary Simulator) Clone detection can be distributed

Added some database locks so that semantic clone detection
can be distributed across multiple threads in the future.
(Binary Simulator) Better clone detection result output
(Binary Analysis) Added unparse to string ability to AsmUnparser