unparse constants defined using define

Summary: The hack parser parses usage of "define" as a function call unless it happens to be using a String. This
unparses those correctly

Reviewed By: @jwatzman

Differential Revision: D1676521

Signature: t1:1676521:1415838137:32805e7539a9564f6e02785e7748c35e1f78fa61
merge lvalue and lvalue_foreach

Summary: A previous diff introduced lvalue_foreach inside GetLocals. This merges lvalue_foreach and lvalue
to capture lvalues. Any invalid representations that are possible should ideally be weeded out during the parsing phase.

Reviewed By: @elgenie

Differential Revision: D1678282

Signature: t1:1678282:1415846509:41c9055a003d372b0892078127896043f0870400
Pass absolute path from TranslatePath to TranslatePathRelative

Summary: When SafeFileAccess is on trying to access relative paths would always fail.
Additionally paths which failed the security check were being translated to be
the cwd, which could itself be outside the allowed directories.

Fixes #2774

Reviewed By: @JoelMarcey

Differential Revision: D1677651

Signature: t1:1677651:1415837620:50d0b15b04da5641f2f7c82a173c791e8478029f
Wait for clean shutdown on SIGHUP

Summary: HHVM is supposed to do a clean shutdown when it receives SIGHUP -
which it does when using LibEventServer - but with ProxygenServer, it spins off
an additional thread to shutdown queues, leaving the original thread to
re-raise the signal before the queues drain.  Fix this by waiting for the
servers to stop.

Reviewed By: @markw65

Differential Revision: D1675300

Signature: t1:1675300:1415808825:f77150b8cb0ea85eaf90d58095be4baeaea2d317