Convert built-in PDO class to HNI

Summary: **Motivation**
The Doctrine libary used by Symfony defines a class that extends the built-in PDO and implements their custom interface. That interface declares the `prepare(..)` method with one parameter, while `PDO`'s version has two, the second having a default value.
With the class defined via IDL, the semantic check in `class.cpp` was failing to see the presense of the default value and reporting an error.

One of Symfony's test that were failing:
  Symfony/Bridge/Doctrine/Tests/Form/ChoiceList/UnloadedEntityChoiceListCompositeIdTest.php

Reviewed By: @ptarjan

Differential Revision: D1612690
Relax parameter declaration check for built-in functions

Summary: In certain cases we can't have our built-ins act as those of PHP5 because the latter don't have type hints.
For example, consider the following case:

  // Built-in PDO (HHVM)
  class PDO {
   . . .
   function query(string $sql, ...$argv): mixed;
   . . .
  }

  // Built-in PDO(PHP5)
  class PDO {
   . . .
   function query();
   . . .
  }

  interface I {
   function query();
  }

  class C extends PDO implements I {
  }

This code works in PHP5, but doesn't in HHVM, because our parameters check fail.

The proposed solution is to disable parameter checks for built-in classes when not running in HipHop-syntax mode.

Reviewed By: @markw65

Differential Revision: D1623635