Various fixes to the build

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.
It was because of this: https://github.com/facebook/hhvm/pull/2085

Basically it was (incorrectly) decided that libpam wasn't necessary, then it was (incorrectly again) decided it was only necessary on OS X. I don't recall anybody mentioning that it didn't "link well".

It's not a hard dependency, if we can't find it, we just don't link it.