Add SystemHeapAllocator and related utility classes

This SystemHeapAllocator class provides utility functions which
work with the SystemHeapAllocator defined in the public API, making
it more convenient to use.

SystemHeapAllocated is meant to be used as base class for objects
that are to be allocated using SystemHeapAllocator. It defines
operators to use placement-new with a SystemHeapAllocator, and
an allocator-aware Delete<T>() template function that must be
used instead of global delete operator.

The SystemHeapAllocatorObject class is intended to be used as a base
class for objects which are allocated via a SystemHeapAllocator. The
class defines custom new/delete operators. Allocation is done via
placement-new, and the allocator will embed a copy of itself (read:
a pointer) in the allocated memory area, so the delete operator can
retrieve it to perform the deallocation.

Functions v8::SystemHeapAllocator::{get,set}Default() access a static
global which is preinitialized to an allocator (LibcSystemHeapAllocator)
that uses the system C library malloc() and free() functions.
Base Isolate on SystemHeapAllocatorObject
Base Isolate::ThreadDataTable on SystemHeapAllocated
Base Logger on SystemHeapAllocated
Base Counters on SystemHeapAllocated
Base UnicodeCache on SystemHeapAllocated
Base DateCache on SystemHeapAllocated
Base CompilationCache on SystemHeapAllocated
Base Bootstrapper on SystemHeapAllocated
Base ThreadManager on SystemHeapAllocated
Base ContextSwitcher on SystemHeapAllocated
Base StatsTable on SystemHeapAllocated
Base OptimizingCompilerThread on SystemHeapAllocated
Base RegExpStack on SystemHeapAllocated
Base StringTracker on SystemHeapAllocated
Base KeyedLookupCache on SystemHeapAllocated
Base ContextSlotCache on SystemHeapAllocated
Base DescriptorLookupCache on SystemHeapAllocated
Base TranscendentalCache on SystemHeapAllocated
Base InnerPointerToCodeCache on SystemHeapAllocated