Improve HHBBC's interp for SetOpL and SetOpM

Summary: It currently produces TInitCell as the output type of both bytecodes,
regardless of what the inputs are. We can feed the input types to
type-arith to get a better result type.

Reviewed By: @jdelong

Differential Revision: D1360824
Add a more useful constructor to NormalizedInstruction

Summary: It was bugging me that we create a "blank" NI and then fill
in some fields that pretty much have to be there (SrcKey, Func, and
Unit).

Reviewed By: @swtaarrs

Differential Revision: D1378297
Share event hooks between async functions and async generators

Summary: Async generators need the same type of hooks as async functions. Let's
move them to ResumableWaitHandle -- their common parent class.

Reviewed By: @billf

Differential Revision: D1378731
Typecheck parameters in PHP constructor invocations

Summary: NOTE: I assume there's something wrong with this fix since it was basically
the fix from D750432 which was reverted in
rHACK49fd0c13388ec40fe57b5793e301ccb61ba3b742 - but I'm not sure why.
Raising as an RFC; this bug bit me in www code today so there's
something to fix and probably a better way :-) .

Parameters weren't always checked in constructor invocations.

Specifically: calling ##new DerivedClass(...)##, where ##DerivedClass##
is a Hack class that extends a PHP class but inherits the constructor
from the PHP class. In that case the arguments are never visited.

Reviewed By: @pikatchu

Differential Revision: D1374187
Fix null byte in LDAP bindings

Summary: A backport of https://github.com/php/php-src/commit/9af0756dd563d4eef7ce9492a6abb1b99ef74637

Reviewed By: @JoelMarcey

Differential Revision: D1377456
Declare Bash dependency in shebang

Summary: BASH_SOURCE is obviously Bash specific and so the shebang should tell
the system to use Bash.

Also while I was there I used env to get the Bash in the user's PATH
instead of just the system's Bash.
Closes #2915

Reviewed By: @fredemmott

Differential Revision: D1378977

Pulled By: @JoelMarcey
Tidy up hhbc-translator.h

Summary: @mxw's work on code cleanliness inspired me to do some
spring cleaning on hhbc-translator.h.  It wasn't in too bad a shape,
but moving some implementation to the .cpp and grouping the public and
private parts makes it a bit easier to look through.

Reviewed By: @alexmalyshev

Differential Revision: D1378739
Abstract inotify into fsnotify

Summary: In preperation for the FSEvents port of dfind, our inotify service, I
have abstracted out inotify from dfind. Now, dfind use FSNotify, which will be
implemented with inotify on linux and FSEvents on OS X

Reviewed By: @jwatzman

Differential Revision: D1377709