Merge branch 'bronevetsky1-cdf-test' of https://github.com/bronevet/rose

Conflicts:
	src/midend/programAnalysis/genericDataflow/Makefile_variables
	src/midend/programAnalysis/genericDataflow/analysis/analysis.C
	src/midend/programAnalysis/genericDataflow/analysis/dataflow.C
	tests/roseTests/programAnalysisTests/generalDataFlowAnalysisTests/Makefile.am
Merge updates
Virtualized Parts into a full wrapper so that PartPtr no longer refers to DataflowNodes but
is now an abstraction that can be implemented by any analysis. Implemented a baseline implementation
of this API as part of analysis/stx_analysis.h/.C. Code compiles and runs for intra-procedural
examples.
A few more edits missed in last commit.
Current state of control flow implementation work that will, when done, allow dead path elimination. Committed to allow cross-machine exchange.
[EDG 3.3] Fixed use of ROSE for nginx (C application) and added testcodes for transparent union support and self referential macros.
Intermediate commit.

Right now the framework partially works for dead path elimination but since we allowed information to be stored on edges we now need to convert the API to ask Expr2* questions along edges as well. This change may not be a good idea so this is a rollback point.
[EDG 3.3] Fixed use of ROSE for nginx (fixed to avoid the associated test code on OSX).
[EDG 3.3] Fixed use of ROSE for nginx (fixed to avoid the associated test code on OSX).
[EDG 3.3] Fixed use of ROSE for nginx (fixed CMake support).
Merge commit '6e029c0ffcf0fbc3736005933a32c6aa53f6dba7' into HEAD
(Binary Analysis) Moved '<<' into InsnSemanticsExpr namespace

The operator<< function wasn't being found for some instruction
semantics expressions because it wasn't in the right name space.
(Binary Simulator) Use print function from previous commit
(Binary Simulator) Rewrote multi-domain memory and register states

* Removed the old multi-domain memory that used a lookup table. We
  decided that this wouldn't work in the long term because the SMT
  solver would ultimately mix operations between memory keys and
  other values.

* Replaced with a multi-domain memory that operates according to the
  currently-selected domain, converting values as necessary from one
  domain to another.

* Register access is similar to memory reads and writes.  Reading
  a value from a register might cause a conversion to the currently-
  active domain along with a secondary write to save the converted
  value back into the register from whence it was computed.
(Binary Simulator) Made message output more robust

Log messages use zero for the EIP register value if the value
is not known.
(Binary Semantics) Added unsignedExtend to the semantic interface

* This function was used by some layers but not others. I added
  it to all instruction semantics classes now so it can be used
  by MultiSemantics.
(Binary Semantics) Improved an error message
Merge commit 'ac9c511cc25cdce86ebf1ae25f9bd8a7fb142412' into HEAD
Mostly functional Dead Path Elimination Code.
Merge branch 'bronevetsky1-cdf-test' of https://github.com/bronevet/rose into bronevetsky1-cfg-test2

Conflicts:
	src/midend/programAnalysis/genericDataflow/Makefile_variables
	src/midend/programAnalysis/genericDataflow/analysis/analysis.C
	src/midend/programAnalysis/genericDataflow/analysis/dataflow.C
	src/midend/programAnalysis/genericDataflow/lattice/non_compositional/affineInequality.C
	src/midend/programAnalysis/genericDataflow/lattice/non_compositional/affineInequality.h
	tests/roseTests/programAnalysisTests/generalDataFlowAnalysisTests/Makefile.am