Remove shebang and +x from frameworks test runner

Summary: It is not a valid assumption that '#!/usr/bin/env php' is HHVM. Force people to specify
refs facebook/hhvm#4341

Reviewed By: @JoelMarcey

Differential Revision: D1710053

Signature: t1:1710053:1417458141:29e3a4a3dee80f567e08f279d51b3adff163fa38
Make hphp/test/run work on PHP 5.3

Summary: Installed php-cli and php-process packages on Centos 6 (php 5.3.3)

  cd hphp/test
  /usr/bin/php ./run -m interp quick/ # PHP 5.3.3
  /usr/local/bin/php ./run -m interp quick/ # HHVM FB release

Fixes facebook/hhvm#4341
@ptarjan is adding this to our automated testing.

Reviewed By: @ptarjan

Differential Revision: D1710792

Signature: t1:1710792:1417477188:6f85959db45ac58c98884e66dedf62dcf62b71bc
Fix build on ubuntu 10.04

Summary: Unclear to me how this worked anywhere...?

Reviewed By: @sgolemon

Differential Revision: D1711613

Signature: t1:1711613:1417483088:c214a922d139877d03ddaccc11f893f4d7c11e47
abstract constants: preclass/class emission [2/2]

Summary: `abstract const` in a class has the same general purpose as an
 abstract method: prevent a class from being 'concrete' unless it
 defines that constant. Trying to reference a value of an abstract
 constant remains a fatal (as if it were not defined at all).

 PHP5 doesn't allow interface constants to be redefined in any
 implementing class. In contrast, this diff allows interface/abstract
 class constants to be defined as `abstract` in a addition to regular
 definitions. This allows (and for non-abstract children, forces)
 extending classes to provide concrete definitions for those
 constants. This diff does not touch the prohibition on constants in
 traits.

 Between preclass emitter, preclass, class, and hhbbc, we have an
 impressive number of structs that represent constants. In all of
 these, the ## val ## of a const is changed from being a TypedValue to
 a ##folly::optional<TypedValue>##, with ##folly::none## representing
 an abstract constant definition. For constant values,
 ##KindOfUninit## is already taken as the representation values
 requiring runtime calculations (e.g. 'const X = self::Y;').

 Note: all this diff does for runtime reflection support is actively
 hide the abstract constant definitions.

Reviewed By: @jdelong

Differential Revision: D1693734

Signature: t1:1693734:1416989210:8f15fa8069018553973f0b285315f02330096323
ReflectionClass::getAbstractConstantNames

Summary: ... exposes a way of reflecting on abstract constant
 definitions to the runtime. Unlike with regular constant definitions,
 adding a new API means that we're not beholden to the
 self-parent-interfaces ordering of ##getClassConstants##, and can
 readily use parent-interfaces-self instead.

Reviewed By: @paroski

Differential Revision: D1693755

Signature: t1:1693755:1416858783:596334734ab4e4ffb062f89240becaa9fac377e0
require __MockClass of 'abstract final' to be 'abstract final'

Summary: ... so that the invariant that "there are no objects for
 which $obj instanceof AbstractFinalClass" is maintained.

Reviewed By: @paroski

Differential Revision: D1711272

Signature: t1:1711272:1417483818:6eb3486e5036661b2b19174db3139b3cefe6bbe2
Disable optimizeLoads().

Summary: Disable optimizeLoads(), which is generating bad VASM code for
AssertType.

Reviewed By: @jdelong

Differential Revision: D1711994
Fix up integration tests.

Summary: We now pass the list of changed files in a temporary file.

Reviewed By: @jwatzman

Differential Revision: D1707061

Signature: t1:1707061:1417478914:40b46940e89d2e9dd41a3347871064177b463058
Kill shell.ml entirely.

Summary: Replace by `Filename.quote`.

Reviewed By: @elgenie

Differential Revision: D1707066

Signature: t1:1707066:1417470648:cc8cd0bd93c80636770ab381d81a0c435e3fd7d5
typechecker: correct enum exhaustiveness in incremental mode

Summary: ... by treating a change in the constants that are defined in an
 enum class as a "big" difference that leads to the retyping of all usages.

Reviewed By: @int3

Differential Revision: D1711752
Non-member function organization for hhbc-translator

Summary: Replace hhbc translator with a state structure and non-member
functions.  The "public" functions are in irgen.h right now, but the API feels
like we have the wrong abstraction boundary to me (things like
"incTransCounter" are pretty odd functions to have---my thought is
translateRegion and selectTracelet should probably be the only two "public"
functions to the IR frontend eventually.)  I don't think this is an ideal final
state still, basically...

Reviewed By: @swtaarrs

Differential Revision: D1708554
Do a few small TODOs left out of D1708554

Summary: Except the minstr makeCatch thing, which might require some thinking.

Reviewed By: @alexmalyshev

Differential Revision: D1708575