Refactor Delite to use self-contained implementations of internal ops.

Added DeliteInternalOps to replace the subset of LMS common ops used
by Delite internally, and removed the LMS dependencies from Delite.
The primary benefit is that Delite does not automatically import
LMS common ops into DSLs, which can cause conflicts with operations
defined by the DSL or by Forge. While a general improvement, this patch
was motivated by the same problem stanford-ppl/Forge#57 addressed.
With this patch, all OptiML applications compile correctly except for
KDDNN, whereas none were compiling correctly on this branch before.
Update Hadoop version and modify Delite i/o to use Hadoop's Filesystem.

Switching to Hadoop's Filesystem abstraction enables us to use the same
API to read from local disk, HDFS, or S3.
bug fixes : 1) fix anti-dep calculation in DEG, 2) C++ dynamically allocates new heap blocks when needed
Added DeliteFileWriter for parallel file writing.

Also modest changes to DeliteFileInputStream, and exposing both
DeliteFileInputStream and DeliteFileOutputStream externally, so
that they can be used outside multiloops to read/write from different
back-end data stores (and to reassemble chunked inputs).
Merge branch 'optiml-clusters' into wip-clusters2
Merge branch 'develop' of github.com:stanford-ppl/Delite into develop
Merge branch 'develop' into wip-clusters2

Conflicts:
	runtime/src/static/cpp/DeliteMemory.cpp