Fix for optional types in constraints in pfff parser for php/hack

Summary:
Allows only for a single nullable prefix.
This doesn't fix multi nullable, e.g. ???int in constraints

Test Plan: ./pfff -dump_php tests/php/parsing/generics_constraint.php

Reviewers: glevi, amenghra, pad

Reviewed By: glevi

CC: joelm

Differential Revision: https://phabricator.fb.com/D963483

Task ID: 2443278
support namespace notation in extends clauses

Summary:

For now, just convert these to their string representation
as a single ident with a fake token. This will probably
require something more sophisticated.

Note: this adds a dependency on `lang_ml` to `lang_php`
to support printing Really Obvious error messages if
this still goes wrong.

Test Plan:

Generate code graph; doesn't raise `Todo`.

Reviewed By: pieter

CC:

Task ID: #

Blame Rev:
Ignore foreach `as [$x,$y]` notation rather than throwing

Summary:

See title. This now occurs in the codebase, so we should
avoid throwing and add actual support at some point.

Test Plan: builds; doesn't throw when it sees new-style
foreach capture.

Reviewed By: pieter

CC:

Task ID: #

Blame Rev:
* data/php_stdlib/builtins_constants.idl.php: misc
* lang_php/analyze/checker/unit_checker_php.ml: fix
pfff: support native function declaration

Summary:
make test was failing on cmf because the new PHP standard library
contains native function declaration with a new syntax.

Test Plan: make test

Reviewers: pieter, jdelong, andrewparoski

Reviewed By: jdelong

CC: julienv, amenghra, joelm

Differential Revision: https://phabricator.fb.com/D965694
* lang_php/analyze/foundation/unsugar_php.ml: undo pieter
* lang_php/analyze/foundation/controlflow_build_php.ml: undo pieter
* lang_php/analyze/checker/check_variables_php.ml: undo pieter
* lang_php/analyze/foundation/unsugar_php.ml:
* lang_ml/parsing/export_ast_ml.mli:
* lang_ml/analyze/graph_code_cmt.ml: more whitelist
* commons/ograph_extended.ml: gv without &
* lang_php/analyze/foundation/controlflow_php.mli: comments
* lang_php/analyze/foundation/controlflow_php.ml: simplify
* lang_php/analyze/foundation/dataflow_php.ml: CEs
* lang_php/analyze/foundation/controlflow_build_php.ml: simplify
* tests/php/controlflow/for_continue.php: undo jiao's stuff temporarily,
to fix regression
* lang_php/analyze/foundation/controlflow_build_php.ml: comment
* lang_php/analyze/foundation/graph_code_php.ml: estet