Update error messages for FPushObjMethod*/FPushClsMethod* to match Zend

The current error messages for FPushObjMethod and FPushClsMethod are a bit
cryptic. This diff updates these error messages to match Zend.
Revert "Stops response if find a RequestInitDocument redirect"

This reverts commit 4b24643b3af7bbe7ca25a301e27d2bfe185d6a6a
Code cleanup for icc

This is a series of gcc compatible code changes to make icc
happy. Most of the changes are assert(false) -> not_reached() and some
type massaging.
Strip INJECTION macros from ext_collection
Fix idx() to support collections, add throwBadKeyType in a few places

Update idx() to support collections. Also, for some collections the
contains(), remove(), and discard() methods did not throw exceptions if the
key type was invalid, fix that.
Disallow using comparison operators on collections

Using comparison operators (==, !=, <>, <, <=, >, >=) with arrays and
objects can be expensive and produce strange results in some cases.

Rather than having collections match this behavior, I think it's better to
disallow using these operators to compare a collection with an integer,
string. This diff adds checks to either raise a warning or throw an
exception (depending on a runtime option) when any of these operators is
used to compare collection with an integer, string, array, or object.

Note that collections are still allowed to be compared with null, true, and
false using the comparison operators. Also, collections can still be
compared for reference equality with === and !==.
Translate all *M instructions.

Implement generic translation capability for all *M instructions.
Generic translations are emitted as series of helper function calls.

Add the Eval.JitMGeneric runtime option to allow generic *M instruction
translation to be disabled, for regression testing/reversion purposes.

Fix callUnaryStubImpl() to account for pushing rdi when argument is
rsp+disp.

Fix the interpreter to warn for BaseLW* as needed.

Fix the interpreter to initialize IncDecL's stack output before
operating on it.
Add memory usage information to status.* admin port commands

add a memory section to the information returned by
ServerStats::ReportStatus() for threads handling requests
Dont enforce serialization limits during apc_prime

apc can contain some large strings
Translate FPushCtor

It's just like FPushCtorD but without the targetcache lookup
(the Class* is on the stack as an input).
Make Vector::pop return the value that was removed

Vector::pop is advertised as returning the value that was removed from the
Vector. Make it so.
Make more requires merge-only

Optimize initialization by handling simple defines,
simple assignments to globals, and requires from within
Unit::merge.
Implement fb_could_include

This checks to see whether a file could be included.
  For hhvm in sandbox mode, this just checks the existence
  of the file.
  For hhvm in RepoAuthoritative mode, it ignores the filesystem,
  and looks to see whether the file is in the repo.
  For hphpc it checks to see if the file was compiled into the
  binary.
Disallow dynamic properties for collections

Allowing for dynamic properties on collections is kind of silly, and it
would complicate adding var_dump and serialization support for collections.

This diff disallows property access for collections.
Free memory for preg and memcache

This introduces a more expensive, second phase of clearing thread caches.
should help reduce long term memory usage
Dont call getMInstrCtx unless necessary

The translations for the M* instructions call getMInstrCtx to
set MInstrState::ctx if the context is not fixed, or if there
are property accesses in the vector. But MInstrState::ctx is
only read when the context is not fixed AND there are property
accesses in the vector.

Also found an issue where the BaseN* helpers would access
the current frame without a VMRegAnchor. Fixed by passing in
the correct fp as a parameter.