Fix typehint for lambdas

Fixes #2370

Our parsing of short lambda arguments was super naive. They're basically the same thing as anonymous functions, so we need to support typehints, variadics, etc.

I can't say I love the pattern of trying to parse and seeing if it created any errors, but it works.

I also decided to add support for lambda return types. To make sure I covered everything I copied the hphp/test/quick/lambda*.php tests here, with a few small Hack related fixes (like `new bar` -> `new bar()`).

The one thing that Hack couldn't support was typing a lambda function with anonymous arguments. For example, I couldn't get this to work:

    (): (function(int): int) ==> (int $x = 4): int ==> $x;

Hack thinks that the arity doesn't match between these two functions. Internally we can deal with a function type with min/max arity, we just don't have syntax to declare it. Phooey.

Reviewed By: @jdelong

Differential Revision: D1266483
Removing Parallel query from code base

fb_parallel_query has been deleted from the other repos, now it's fbcode turn. I think I deleted everything related to it.

Reviewed By: @markw65

Differential Revision: D1273814
Implement f_strpbrk using libc's strcspn when there's no null bytes

Seems to get pack the instructions regression from the change
to a manual loop.  It looks like the libc implementation of strcspn is
similar to the implementation of strpbrk (various machine feature
detection with different implementations).  I think it is also
possible to use strcspn even if the set has null bytes in it if you
remove the null byte and record whether it should count as a hit
(since strcspn will always stop on a null byte), but this doesn't do
that.

Reviewed By: @billf

Differential Revision: D1276594
Really disable the test/run progress bar for emacs-shell users

Found yet another pattern produced by stty when I'm running
emacs shell.

Reviewed By: @alexmalyshev

Differential Revision: D1281066
Unspecialize {AsyncFunctionWaitHandle,Continuation}::Create{Func,Meth}()

After the recent cleanups, the ::Create{Func,Meth}() functions are
almost identical and it no longer makes sense to specialize them.

Merge them trivially into ::Create().

Reviewed By: @jdelong

Differential Revision: D1278319
Introduce Resumable

Introduce Resumable, a struct that contains all data needed to suspend
and resume execution. Currently used only by generators. Allows
follow-up diff that moves async functions from generators to resumable.

Reviewed By: @jdelong

Differential Revision: D1278338
Use Resumable in AsyncFunctionWaitHandle

Move AsyncFunctionWaitHandle from Continuation to Resumable. Avoids
construction of extra object per suspended async function.

Reviewed By: @jdelong

Differential Revision: D1272734
Rename ContSuspend{,K} opcodes to Yield{,K}

This opcode does everything yield does, so let's give it a proper name.

Reviewed By: @edwinsmith

Differential Revision: D1279060
Rename some 'generator' names to 'resumed' or 'resumable'

Rename most non-generator specific resumable stuff from 'generator' to
'resumable':

- *::inGenerator() -> *::resumed()
- *GeneratorSP -> *ResumableSP
- generatorStackBase() -> resumableStackBase()

Reviewed By: @jdelong

Differential Revision: D1279132
Disable flaky zend test

Reviewed By: @bertmaher
Log filename/line number from failed asserts to stacktrace files

This will put message we print to stderr in the stacktrace file,
making for much easier debugging.

Reviewed By: @edwinsmith

Differential Revision: D1222208
StrNR instead of const String& in some returns

Instruments the parts of D1072601 needed to convert const StringData*
properties to LowStringPtr (~all of it).

Reviewed By: @markw65

Differential Revision: D1278834
Use LowStringPtr for static strings

Reviewed By: @edwinsmith

Differential Revision: D1278843
Implement unread_bytes metadata for MemFile

refs guzzle/guzzle/#538

Reviewed By: @ptarjan

Differential Revision: D1280475