[BlockMalloc] Start to add new block-based memory management API
[BlockMalloc] More work on block allocator
[BlockMalloc] Block allocator working successfully.

Tests appear to mostly be working
[BlockMalloc] Align GC-enabled slabs to a known value

This will make garbage collection easier, as we can
quickly tell what block an address belongs to
[BlockMalloc] Add function to return active GC slabs
[BlockMalloc] Record which individual blocks have been allocated from
[BlockMalloc] Switch Slab and Block structs to use void * pointers
[BlockMalloc] Implement recycleMemory method
[BlockMalloc] Get rid of slab alignment to make collection easier
[BlockMalloc] Reset block-malloc stuff during MM resets

Fixes issues with running HHVM in server mode
[BlockMalloc] Fix major bug in recycle memory
[BlockMalloc] Use blockMalloc for strings.

Static strings are handled differently and shouldn't be affected
Condition flags: extend bit usability from 8 bits to 32 bits

Summary: We currently use all 8 usable bits of condition flags, but we keep
memory for sizeof(ssize_t)*8 bits. Extend usability from 8 bits to 32
bits to allow new bits to be introduced.

Reviewed By: @billf

Differential Revision: D1350845
[Tracing] Initial, largely unsuccessful attempt at tracing collection

Individual commits that went into this:

Initial work on a tracing garbage collector
Further attempts to trace the heap
Cleaned up tracing
Change MarkSweepCollector to a thread-local singleton
Remember objects which have destructors
Cleanup of previous commit
Add check to fix segfault in tracing-collector.
Tracing collector takes into account what slabs are in use
Take into account the blocks that are in use
Recycle dead blocks
Add a surprise flag so that GC can be requested in the JIT
Request a garbage collection when we alloc a new slab
Get rid of slab alignment to make tracing easier
[Tracing] Start work to improve tracing
[Tracing] Better tracing of the heap through recursion

Conflicts:
	hphp/runtime/base/tracing-collector-impl.h
[Tracing] Fixes to tracing cyclic structures

Conflicts:
	hphp/runtime/base/tracing-collector-impl.h
[Tracing] Include global variables when tracing the heap
[Tracing] Extract heap tracing code into its own module

It takes in a lambda function which is called for each TypedValue
that is found

Conflicts:
	hphp/runtime/base/tracing-collector-impl.h
[Tracing] Improvements/fixes to tracing