fix C++ target
bug fixes for C++ target
- initialize array with zero
- alloc & dealloc filestream filenames
- chnage memcpy to memmove for overlapping array copy
- remove * for string type arguments at runtime codegen
- add c codegen for profile DSL
- change struct constructor argument names
enable C++ target for OptiQL
fix C++ bug: declare runtime _cond variable only once for each target
enable Arguments op for C++ only when needed
FIX: For scala target _cond variable should be generated for all possible schedules
C++ fix: load/store JNI objects to share across C++ threads.
Use case: when a C++ thread tries to update to JVM for a data structure created from another C++ thread.
(test case: Delite OptiML VectorSuite VectorUpdatesRunner)
C++ fix: Initialize sync object of type string to string() instead of NULL.
C++ fix: off-by-one error for parallel IO (bug was skipping the first line assigned to each thread)
C++ fix: missing notify/await nodes
C++ fix: structural equality for DeliteStructs
C++ fix: reference sync objects only when actually generated (locations passed to writeJNIInitializer)
Merge remote-tracking branch 'origin/develop' into cpp
Merge remote-tracking branch 'origin/develop' into cpp

Conflicts:
	runtime/src/ppl/delite/runtime/graph/ops/Arguments.scala
C++ fix: lock/unlock accesses to std::map
Fixes non deterministic JVM crashes when running OptiQL tests
C++ fix: put jobject on stack and re-insert it to map after transfer.
C++ fix: cherry-pick 93052cfbe83214f3d40cc1ee2ac5203e08384304 (fix-gpu-cpp branch)
change sendUpdate/recvUpdate to use symbol specific synchronizer (e.g., when two foreach loops are fused)

Conflicts:

	runtime/src/ppl/delite/runtime/codegen/sync/ScalaSyncGenerator.scala
C++ fix: cherry-pick 417299c84de36d93294d816a622673617782c643 (fix-gpu-cpp branch)
Fix for referential primitive types on GPU, add test cases.
Also includes bug fixes for the previous commit.

Conflicts:

	dsls/optiml/tests/ppl/tests/delite/DeliteGPUSuite.scala
	runtime/src/ppl/delite/runtime/codegen/VariantGenerator.scala
C++ fix: check if CPP.xml is properly set
C++ fix: use memmove instead of memcpy (DenseMatrixUpdatesRunnerC non-deterministically fails)