Handle foreach patterns in ast_pp_build
* lang_php/parsing/parser_php.mly: estet
* project.el: misc
[spatch] support nested XHP patterns transfo

Summary:
I added support for nested XHP patterns in sgrep 3 years ago
but forgot to do the similar thing for spatch ...

Test Plan:
unit test included

also
~/pfff/spatch  -f test3.spatch ~/www/flib/site/x/profile/timeline/picture/XProfilePictureRemoveDialogController.php

           {$description}
         </xui:dialog:body>
         <xui:dialog:footer>
-          <xui:dialog:confirm-button />
           <xui:dialog:cancel-button />
         </xui:dialog:footer>
       </xui:dialog>;

Reviewers: jcreed, pieter

Reviewed By: pieter

Subscribers: azich, ngao

Differential Revision: https://phabricator.fb.com/D1404468
Merge pull request #86 from nox/ast_pp_build-foreach_pattern

Handle foreach patterns in ast_pp_build
* tests/php/pretty/docblock.php: test file for issue #85
* h_program-lang/pretty_print_code.ml: make the default margin configurable for issue #84

test plan:

$ ~/pfff/lang_php/pretty/prettyphp -indent 4 spacing_php
<?php

function test_spacing() {
    if (true) {
        return 1;
    } else {
        return 2;
    }
}
[pfff] Add class constant typehints to the AST

Summary: Typehints for class constats seem to be parsed but not saved in the AST. Not sure if I did this right; mostly copied the code for class variables.

Test Plan: make clean / make all works correctly; I'm successfully using the class constant typehints in the Codex script (which uses pfff)

Reviewers: pad

Reviewed By: pad

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

Tasks: 4392286
* gtkrc-2.0: example of config
* lang_clang/analyze/graph_code_clang.ml:
* h_program-lang/errors_code.ml: adjust ranking of GlobalExtern and Prototype
deadcode
* main_codequery.ml: take list of dirs
* h_program-lang/database_code.pl: explode_file
* graph_code/graph_code_prolog.ml: add use of fields
* code_graph/view_matrix.ml: handle Other
* web/ocsigen.txt: update
* web/: update to eliom 4.0
but had to comment stuff in canvas_helpers, maybe todo,
and codemap/codegraph do not work anymore, they return an exception
* web/runtime2.js:
Merge branch 'master' of github.com:facebook/pfff
* tests/clang/c/initializer.c: todo