(Config) Config script to suppress any gcc optimizations

Adds -O0 without affecting other debugging switches.
(Binary Analysis) Added --base-va switch to disassembler

* The entire specimen can be rebased by supplying an alternate base
  virtual address.  This doesn't work perfectly for file formats that
  don't natively support a base address (e.g., ELF) or specimens
  that support a base address but do not contain position independent
  code.

* Fixed one place in the Partitioner to account for non-zero base_va
  for ELF files.
(Binary Analysis) Avoid assertion for MemoryMap::NullBuffer reads for is_zero()
(Binary Analysis) Partitioner change to detect relocated symbols

The Partitioner failed to find functions identified with a symbol
if the section containing the function was mapped to an address
other than the section's preferred address.
(Binary Analysis) Disassembler tool can pre-reserve addresses

Added a --reserve switch to the "disassemble" so that regions
of the virtual address space can be reserved before the tool tries
to load the specimen and its libraries.  One use for this is to
force a dynamic object specimen to be loaded to a higher address
than the default, which is zero. E.g.,

$ ./disassemble --reserve=0,0x08000000 libfoo.so

causes the library to load at 0x08000000 because all addresses
below that have been taken.
(Binary Analysis) Added missing clear() method

BinaryAnalysis::InstructionSemantics::SymbolicSemantics::MemoryState::clear()
(Testing) rth_run.pl honors the TMPDIR environment variable

If your /tmp is unusually small then it might fill up when
running lots of tests in parallel. An alternative is to
create a temporary directory on a larger partition and use
that instead (this also works for most other things that
use temporary space):

$ mkdir $HOME/tmp
$ env TMPDIR=$HOME/tmp make check
(Testing) Fixed "make check" for when srcdir is a relative path

Some of the $(RTH_RUN) commands in the makefiles assumed that
$< would be an absolute name. But if the user ran "configure"
with a relative path then this might not be true.  The fix
is to replace "$<" with "$(abspath $<)"
(Binary Analysis) Documentation change for BinaryLoader
(Binary Analysis) Fixed BinaryLoader bug

The calculation to rebase an entire file while remapping was
slightly wrong and could cause alignment constraints to become
unsatisfiable.
(Binary Analysis) Fixed bug in BinaryLoader

Replaced code that tried to insert a symbol at the beginning of an
empty vector.
(Support) Added IntegerOps::isPowerOfTwo()
(Binary Analysis) Added simplification for the three symbolic shift operators

   (shift AMT1 (shift AMT2 VALUE)) ==>
      (shift (add AMT1 AMT2) VALUE)

Usually the shift amounts are concrete, so constant folding usually happens:

   (shift 5 (shift 6 VALUE)) ==> (shift 11 VALUE)
(Binary Analysis) Added test case for shift operator simplification

Conflicts:
	binaries/samples/usedef
	binaries/samples/usedef.s
	tests/roseTests/binaryTests/usedef.ans
(Support) Added IntegerOps::log2max() to return ceiling of log base 2
(Binary Analysis) Improvement to shift simplifications

To distinguish between cases where the shift amount is zero vs
the shift amount being larger than the width of the thing being
shifted.
(Binary Analysis) Updated test answer for shift simplification

Conflicts:
	tests/roseTests/binaryTests/usedef.ans
(Binary Analysis) Symbolic operators interpret certain operands as unsigned when printing
(Support) Adjustment to StringUtility functions

* addrToString() no longer interprets its value as signed since
  addresses are seldom signed.  If you need signed, use the new
  "toHex" functions:  signedToHex(), unsignedToHex(), etc.

* Added appendAsmComment(), which adds or adjusts the text
  at the end of a string between angle brackets.
(Binary Analysis) Unparsers use new StringUtility functions

The unparser for symbolic expressions uses the "toHex" functions,
which print constants as hexadecimal with optional decimal comments.
This makes the output consistent with unparsing machine instructions.