libdwarf, libpam, libelf, bootstrap cmake fixes

Summary: First: libdwarf. libdwarf seems to have no problem making breaking
changes and provides no easy way to even test the version you're
building against. I have added two tests in `FindLibDwarf.cmake` to
detect a change to function type signature and to detect the removal
of `dwarf_producer_init_c`. Hopefully this will work on all systems.

The recent change to use more system libraries broke the build of the
`gen-*` bootstrap utilities, as the targets were not updated to use
the system `double-conversion` library and instead attempted to use
the (unbuilt) local one.

Commit 83cbca11c1 made linking to libpam happen only on OSX. This
breaks the build on ArchLinux and openSUSE at least. I reverted this
change given that detecting whether or not you need to link to it is
quite difficult.
Closes #3134

Reviewed By: @ptarjan

Differential Revision: D1427288

Pulled By: @fredemmott
Don't over-consume local values when inlining

Summary: FrameState::forEachLocal includes locals from inlined callers. This is
what we want when we're consuming all locals to leave a trace, but not when
we're processing an instruction that just consumes locals from the current
frame.

Reviewed By: @jdelong

Differential Revision: D1426975
Clean up JIT handling of nop bytecodes

Summary: - Turn (Un)BoxR(Nop) into regular instructions. The assertTypeStack calls
  aren't needed since the next instruction will assert the same types anyway.
- Remove NormalizedInstruction::noOp since it's no longer needed.
- Rename NopDefCls to DefClsNop to be consistent with the other Nop bytecodes.

Reviewed By: @jdelong

Differential Revision: D1426804