pfff: Support async keyword

Summary:
Add support to pfff for the async keyword.

Async functions are the future of data fetching at Facebook. Basically if you
add the `async` keyword to a global function, anonymous function, or class
method then it becomes an async function.

  async function foo() {
    $a = await gen_a();
    return $a + 4;
  }

is similar (though not identical) to

  function genFoo() {
    yield wait_for(gen_a());
    yield result($a + 4);
  }

To be honest, not completely sure what I'm doing. Hopefully I'm not way off
base with this change. I could have made the parser ignore the async keyword,
but I figure we might as well support it

Test Plan: ./pfff_test -parse_php tests/php/parsing/async_fundecl.php

Reviewers: pad

CC: jan

Differential Revision: https://phabricator.fb.com/D915808
pfff: Support await keyword

Summary:
Add support to pfff for the await keyword.

Async functions are the future of data fetching at Facebook, and inside async
functions you use the keyword `await` to wait for another async function.

  async function foo() {
    $a = await gen_a();
    return $a + 4;
  }

is similar (though not identical) to

  function genFoo() {
    yield wait_for(gen_a());
    yield result($a + 4);
  }

I basically copied `yield` to make this diff. This diff complements {D915808}

Test Plan: ./pfff_test -parse_php tests/php/parsing/await.php

Reviewers: pad

CC: jan

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