[pfff] Support for PHP function unpacking

Summary:
This was blocking Codex parsing for a lot of files, and today's a hackathon, so I figured why not!

It looks like argument unpacking is starting to get codemodded in, so this adds support for it in pfff.

This isn't 100% correct, as technically you can unpack any expression, but that leads to a parsing conflict due to the fact that "..." is a valid expression. I resorted to only allowing unpacking of `simple_expr`s, which is probably what most sane people will be doing.

This also fixes an oversight where `... $x` was not allowed as a function parameter (it's allowed in HHVM and actually used in www).

This is implemented in the AST as an `ArgUnpack` node - is that reasonable? This required me to add a whole bunch of handling in AST utility functions, many of which I stubbed out with `raise Todo`s (it seems very hard to type argument unpacking?)

Test Plan:
Ran `pfff -dump_php test.php` where `test.php` contained:

```
<?php

function f(... $a) {}

f(... $x);
f(...$x);
f(...($x + $y));
```

Result:
{P16954691}

Also ran this on all files in WWW e.g. `flib/entity/core/dynamic_yield/DynamicYield.php`; only files it choked on were syntax errors and lambda typehints.

Reviewers: eletuchy, julienv, pieter

Reviewed By: pieter

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

Tasks: 5468512

Signature: t1:1646174:1414604736:4859c7f87f79042e8b92c05d609ed4e323051a1b