detect proper libdwarf types - try #2

Summary: My suspicion for failing on CentOS is because we set the dwarf const
variable to "0" instead of 0 which surprisingly is not in the list of
many things that evaluate to false:
http://www.cmake.org/Wiki/CMake:VariablesListsStrings

According to ptarjan this PR should trigger a CentOS build, so I hope
this works.

Previous message:
Current master is broken by libdwarf once again. Other than checking for
a particular init function we should also check if we're allowed to use
a const char* for name separately.

Combined them into a macro for future changes.
Closes #3184
Created from: https://github.com/facebook/hhvm/pull/3184

Reviewed By: @ptarjan

Differential Revision: D1432972
Fix reoptimize() for control-flow

Summary: If optimizeInst() returns an SSATmp that is different from the
destination of the instruction, we add a "Mov" instruction to move
it to the correct destination. However, this was not correctly
handling the case when the optimized instruction has a taken branch.

This diff fixes it to add the Mov on the fall-through branch.

Reviewed By: @swtaarrs

Differential Revision: D1412984