Stop trying to recurse over / for fake frameworks

Reviewed By: @ptarjan

Differential Revision: D1435686
need the vixl headers for a bunch of runtime headers

Summary: Several of the headers in runtime include files from vixl. Added a few lines that add the vixl headers to the rest of the hhvm public headers.

Reviewed By: @LiraNuna

Differential Revision: D1434788
typechecker: support for PHP5.6 variadic args

Summary: The `...$args` syntax of https://wiki.php.net/rfc/variadics should
 supplant the `...` hh-only extension in most/all cases. However, we
 will likely support both for at least a few releases.

 The issue of whether to allow a typehint `T ...$args` to be
 interpreted as `array<T> ...$args` has been punted in the HHVM
 runtime by not allowing type-hints on variadics. As a result,
 ...$args declarations currently cannot be used in hack strict files.

 A possible extension of this work would be disallowing calls to
 func_get_arg(s) -- but that may also be appropriate for linting
 tools.

Reviewed By: @jwatzman

Differential Revision: D1410635
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
typechecker: use a type to represent function arity

Summary: ... the arity information for a function is easier to
 consider when code is being written as a pattern match instead of 2-3
 correlated fields (i.e ##1000## arguments meaning ##...##). This diff
 is a net savings in lines of code and sets up future refactoring to
 track the type-hints on varidic params. Also, ensure that the
 functional programming term "arity" doesn't appear in error messages
 meant for typechecker users

Reviewed By: @jwatzman

Differential Revision: D1435310
Combine unit repo table columns into one blob

Summary: It's a lot easier to add things if we combine this all into one
blob.

Reviewed By: @markw65

Differential Revision: D1434551
typechecker: adding hint support for PHP5.6-variadic args

Summary: The syntax ##f(A ...$a)## makes ##$a## an ##array<A>## for
 the purposes of the body of ##f##, but for callers of ##f##, it is a
 function that accepts any number of arguments, as long as each of
 those is an ##A##.

 To implement this syntax:
 - the param type information for the hint that accompanies the variadic
   is parsed and tracked; this includes all the places where func types are
   instantiated
 - the approach to getting types for the body vs signature of a function
   is now necessarily distinct (with a boolean param)
 - in order to check types in functions calls, the subtyping of params changes
   from stopping after one of the param lists is exhausted as previously now proceeds
   further using a default (containing the type calculated from the variadic hint)

 NOTE: HHVM runtime doesn't yet support the typehinted form of
 ##...$args## due to perf concerns with respect to when the typehint
 is to be checked.

Reviewed By: @jwatzman

Differential Revision: D1435333
more accurate signatures for fb_get_enum_* functions

Reviewed By: @jwatzman

Differential Revision: D1435555