(Binary Analysis) Changed output format for PartialSymbolicSemantics

The old API output format changed so that, like the other semantic
domains, it indicates the width of the ValueType being printed.
(Binary Analysis) Improvements to the new semantic API

* Multi-byte memory supported in a general way, not just for
  PartialSymbolicSemantics

* Fixed an x86 dispatch bug for one instruction

* PartialSymbolicSemantics value output includes width in bits
  in order to make it more like other domains.

* Added test cases for NullSemantics and PartialSymbolicSemantics
  in the new API and verified that they match the old API.
(Binary Analysis) Fixed bug in integerOps::signBit2()
(Binary Analysis) Added and verified tests for IntervalSemantics
(Binary Analysis) tweaks to new instruction semantics API

Replaced false_() and true_() with boolean_() to more closely
match existing number_().
(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