Compress contents of heap
Compress contents of heap

Summary:
Compressing objects before copying in the heap reduces the size of our heap after intializing by ~40%. lz4 is also a fast enough compression algorithm that it is neglible impact on performance. To do this I use the remaining 32 bits in `hh_header_t` to indicate the expected size of the data after it is uncompressed. If the size is 0, then the data is assumed to be uncompressed already.

This requries adding a dependency on lz4. HHVM already has a dependency on lz4 so I updated the Hack OSS build to require building lz4 in order to build Hack.

Reviewed By: jamesjwu

Differential Revision: D3941923

fbshipit-source-id: 08031606b8726864dc0a4e12fe606d6306c43d76

samwgoldman/flow,jamesgpearce/flow,mroch/flow,gabro/flow,claudiopro/flow,gabelevi/flow,gabelevi/flow,popham/flow,facebook/flow,ylu1317/flow,AprilArcus/flow,gabro/flow,fletcherw/flow,mroch/flow,jgrund/flow,MichaelDeBoey/flow,gabelevi/flow,samwgoldman/flow,jgrund/flow,popham/flow,nmote/flow,nmote/flow,ForbesLindesay/flow,jgrund/flow,AgentME/flow,gabro/flow,fletcherw/flow,nmote/flow,JonathanUsername/flow,jamesgpearce/flow,jgrund/flow,gabelevi/flow,JonathanUsername/flow,AgentME/flow,gabro/flow,popham/flow,nmote/flow,AprilArcus/flow,gabelevi/flow,MichaelDeBoey/flow,popham/flow,TiddoLangerak/flow,gabelevi/flow,jamesgpearce/flow,ForbesLindesay/flow,TiddoLangerak/flow,mroch/flow,fletcherw/flow,facebook/flow,MichaelDeBoey/flow,claudiopro/flow,AprilArcus/flow,samwgoldman/flow,AprilArcus/flow,jamesgpearce/flow,JonathanUsername/flow,ylu1317/flow,mroch/flow,AgentME/flow,AgentME/flow,gabro/flow,JonathanUsername/flow,ylu1317/flow,popham/flow,TiddoLangerak/flow,claudiopro/flow,mroch/flow,facebook/flow,jgrund/flow,facebook/flow,gabelevi/flow,fletcherw/flow,ForbesLindesay/flow,ylu1317/flow,MichaelDeBoey/flow,AprilArcus/flow,ylu1317/flow,jgrund/flow,fletcherw/flow,JonathanUsername/flow,JonathanUsername/flow,claudiopro/flow,popham/flow,nmote/flow,ForbesLindesay/flow,facebook/flow,facebook/flow,samwgoldman/flow,JonathanUsername/flow,popham/flow,jamesgpearce/flow,ForbesLindesay/flow,samwgoldman/flow,mroch/flow,fletcherw/flow,claudiopro/flow,facebook/flow,gabro/flow,MichaelDeBoey/flow,samwgoldman/flow,nmote/flow,mroch/flow,ForbesLindesay/flow,jamesgpearce/flow,nmote/flow,AprilArcus/flow,jamesgpearce/flow,TiddoLangerak/flow,TiddoLangerak/flow,AgentME/flow,samwgoldman/flow