Remove some unnecessary verbosity from cmake
Simplify nvAppend

HphpArray::nvAppend is semanticly equivalent to ArrayData::append.
All call sites but one were passing copy=false with a guaranteed HphpArray,
except one, which is cleaner as a call to ArrayData::append anyway.
Cleanup array_setm helper code

With nvSet(int,int) out of the way, we don't need as much templated
code.
A few steps toward making src/util not depend on anything

It looks like the main pain if we want a libutil.a is Logger,
which depends on StackTrace, which depends on execution context, which
depends on everything.  JobQueue also needs to call VM::Stack::flush
right now (separate diff), and the parser probably would need to be
pulled out of util/.  This diff just does the remaining easier things:

  - put TypedValue::pretty outside of trace.cpp
  - ringbuffer/pathtrack didn't really need to include asm-x64.h
  - move stat_cache (uses VM::Transl and some other things) to runtime/base
  - move hardware_counter (VM::Transl and complex_types.h) to runtime/base
Make util/job_queue.h not depend on bytecode.h

It would probably be cleaner if most of the drop-stack
machinery was moved into a policy, but for now this just moves the
part that is VM-specific out so we don't need to depend on bytecode.h.
Only hooks up the servery ones to do a drop on the VM stack (I don't
think the workers in the compiler should need this?).
Move segfault handler out of src/util

StackTrace (and Logger via it) only depended on the world
because of the seg fault handler code importing execution_context.
Move this to runtime/base (it seems more logical to not have it part
of the StackTrace lib anyway).
Make src/util/parser not depend on src/runtime

The parser only needed string_md5 from zend, which also
requires a few other things.  I pulled a few related zend functions to
util/zend (ideally we'd pull everything that doesn't use runtime/, but
no need to get carried away).  After this (and the other diffs), the
only dependency from util to runtime is compiler_id.h.
Remove SA_INC_GEN from build process

We don't need this anymore because there are no longer
extensions that add smart allocator types.  This also makes it
possible to make -C src/compiler again.
Make make -j -C src/util work.

This makes it possible to do make -j -C src/util if you just
want to build util.
Minimal support for gtests for src/util stuff
Move asm-x64.h to util/

I want to write a unit test for codgen, and this file doesn't
really depend on anything VM-specific.
Add some assembler unit tests

Tries assembling a bunch of things and makes sure we get the
expected string back from disassembling it with objdump.
Don't include Nopped instructions in the stream after a failed IR translation

I missed this use of RuntimeOption::EvalJitIR
Remove unused Variant::getDebugDump

This doesn't do much and we can use TypedValue::pretty()
instead.
Make callUnaryStub not trash r10 if it doesn't need to

When calling a stub that is also inside a/astubs, we
shouldn't need to load the address into r10 first.  Also modifies
Stats::emitInc to preserve rScratch.  This should fix TRACE=stats:1.
Do jmp/call with a memory operand when calling destructors
Remove duplicate argNumToRegName from codegen.h
Make numberInstructions not copy-construct the instruction list
Cleanup: Use decRefStr instead of the manually inlined equivalent

This just factors the common pattern of decref & release of a StringData
into a helper function.
Use appendWithRef instead of nvAppendWithRef

The dedicated function for HphpArray doesn't pay for itself
so replace it with a call to ArrayData::appendWithRef instead.
If this path were hot enough, a dedicated HphpArray constructor
would be best.