Remove some incorrect restrictions in the grammar of constant expressions.

Summary: Right now, constant expressions can only contain unary negations of scalar values, when php 5.6 (and common sense) allows negations of any static expressions. Also, < and > require their second argument to be a static_scalar also, which is also silly and doesn't match php 5.6. (In fact, the whole notion of static_scalar doesn't seem to be useful.) Also add support for ** in constant exprs.

Reviewed By: @elgenie

Differential Revision: D1457346
Kill IRBuilder::blockIsIncompatible (try 2)

Summary: The only purpose of IRBuilder::blockIsIncompatible left was to prevent
loops when Eval.JitLoops is off.  This diff gets rid of that, and
translateRegion now properly follows the region description passed to
it.  If any region former doesn't want to expose loops, it should not
include backedge arcs in the produced region.

Reviewed By: @bertmaher

Differential Revision: D1457757
Unfortunate hhi partial revert

Summary: Partial revert of https://reviews.facebook.net/D20667 since it
causes too many errors in www, for `trim` and `date` specifically. Also
corrects the spelling of the filename and removes some `mixed`
annotations (`mixed` in an hhi is basically never what you want.)

See https://reviews.facebook.net/D20667 for discussion on how we can
deal with this better in an open-source world.

Reviewed By: @JoelMarcey

Differential Revision: D1461459
More properly support php 5.6 constant expressions.

Summary: Right now we allow arbitrary expressions for class constants and a restricted subset of expressions for global constants. (An incorrectly restricted one: it considers -foo() to be a constant.) This implements a more reasonable check and uses it for both global and class constants.

Reviewed By: @elgenie

Differential Revision: D1457074