Refactor NativeFuncCaller

Summary: Get rid of the class, and add an int-only specialization.

This is only a minor perf win (~ +0.2%)
but it sets the stage for D1505459 to
not be a horrendous regression (~ -1.0%)
but rather wind up roughly perf-neutral.

Reviewed By: @elgenie

Differential Revision: D1512802
Enable variadics for HNI functions/methods

Summary: Declare a function using the usual variadic syntax with no type

  <<__Native>>
  function foo(int $a, float $b, ...$c): void;

Then take the variadics args as a const Array&:

  void HHVM_FUNCTION(foo, int64_t a, double b, const Array& c) {...}

Profit.

Note that this version does not include FCallBuiltin support,
but since the old IDL version of variadic functions didn't either,
that's not going to make anything any worse.

I think I can add FCallBuiltin support later, but I'd rather
make that a separate diff.

Reviewed By: @elgenie

Differential Revision: D1505459
Convert v?s?printf() to HNI using Variadics

Summary: This helps test D1505459 by actually
exercising the variadic support in Native::callFunc()

Reviewed By: @elgenie

Differential Revision: D1512815