Update CMake/FindLibDwarf.cmake

fedora installs libdwarf headers in /usr/include/libdwarf/
Add support for BC mappings, translation counters, and add new kind for IR-based translations in TC dumps
Use findForNewInsert in HphpArray::add, and other tweaks

Firstly, the ArrayData add() method is only legal when the key
does not exist, so we can use the fast findForNewInsert method
when adding strings to an array.  (We already assert on dups).

Second, if we assume most find() operations on strings (for
get access) find the string on the first probe, then it makes
sense to do the string-equal check first, before the empty-pos
check.
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