fix processing of package and types on-demand; add fix to sage_support.cpp to make sure that Java-Rose continues to compile after a backend errror
Merge branch 'master' of rosecompiler1.llnl.gov:rose/edg4x/rose into charles4/charles4-java-rc

Pushing changes.
(Binary Analysis) Bug fix in RegisterStateGeneric

When reading a register from BinaryAnalysis::InstructionSemantics2::
BaseSemantics::RegisterStateGeneric, if the state stores only parts
of the register it must create the return value by concatenating those
parts.  This code had a bug in that the parts were concatenated
in the opposite order that they should have been.
(Binary Analysis) Added more SgAsmInstruction predicates

Added is_first_in_block() and is_last_in_block() predicates that
return true if this instruction is the first or last instruction
of a basic block.
(Documentation) Changed file list for doxygen
(Binary Analysis) Fixed frontend() so it's more like disassemble.C

* Added Partitioner::disassembleInterpretation() which is similar
  to Disassembler::disassembleInterpretation() except it the
  Partitioner drives the Disassembler rather than the other
  way around.

* Changed frontend() so it calls the partitioner-driven
  disassembly since this seems to normally give better results
  which are more consistent with the disassemble.C tool.
(Binary Analysis) Semantics exceptions inherit from std::runtime_exception
(Binary Analysis) Fixed an assertion for 1-argument x86 MUL instruction
(Binary Analysis) Fixed an error message for semantics tracing
(Binary Analysis) frontend() uses partitioner-driven disassembly

This is closer to what the tests/roseTests/binaryTests/disassembler.C uses
and gives better results although more expensive.
(Binary Analysis) Implemented MIPS shadow registers
(Binary Analysis) Register state initialization

The initialize_nonoverlapping() method in RegisterStateGeneric is now a
documented public method.
(Binary Analysis) Fixed a bug in the new Partitioner::disassembleInterpretation()

This method should not have assumed that a memory map was available
in the interpretation. If there is no memory map, then we need to
perform the BinaryLoader::remap() step.

Also, we now run the disassembler first, then the partitioner instead
of only the partitioner driving the disassembler.  This allows the
partitioner to find functions by pattern matching instructions.
(Binary Analysis) Cleaned up binary specimen lists; added more disassembler tests

* The list of binary specimens is organized better now. See binaries/specimens/SpecimenSets.inc

* Added disassembly tests whose output must match a previously computed answer.  This
  should help us not break things as much although it will be more painful when small
  changes are made to the disassembler or unparser.

* Function boundary tests can run in parallel now that subdirectories are supported.

* Added some very basic tests for random number generators.
(Binary Analysis) Removed extraneous disassemble test

The "disassemble" tool is tested more extensively at another
place in this makefile.
(Binary Analysis) Unparser does better job of disassembling static data

The static data disassembly was dependent on the disassembler configuration
and did things like skip over bytes that resulted in a basic block that
included an invalid instruction, disassembling some bytes twice,  etc.

The new static data disassembler just starts at the first byte
and disassembles one instruction at a time, advancing to either the
address following the instruction (on success) or the next address
(on failure).
(Binary Analysis) Updated disassembly test answers

The format of the output changed slightly with the previous
merge, so these answers needed to be updated.
(Binary Analysis) Added test filter for disassembler tests

We cannot compare the memory map outputs from the disassembler
because they have absolute file names that differ between the
machine where the answer was calculated and the machine doing
the testing.
(Binary Analysis) Disabled the bit pattern testing

This test is implemented on a different branch and isn't
available here.
(Binary Analysis) Bug fix in API1 MultiSemantics::ValueType::set_valid()

The functions that mark a subdomain value as invalid had a bug that marked
all subdomains EXCEPT the desired one as invalid.