Bump Guzzle3 again

Our OSS builds use a more recent version of curl than my devserver, and it was failing in the continuous runs. This includes https://github.com/guzzle/guzzle3/pull/22 which is a trivial test correction - not for an HHVM bug.

Reviewed By: @ptarjan

Differential Revision: D1275950
Allow for anonymous namespaces

Currently Hack doesn't accept this as a valid parse:

```php
namespace foo {
  function bar() {}
}

namespace {
  function baz() {}
}
```

This patch allows for anonymous namespaces, treated like the global namespace, which are accepted by HHVM.
Closes #2321

Reviewed By: @gabelevi

Differential Revision: D1276092

Pulled By: @jwatzman
Free generator locals at return / frame unwind.

Make async functions and generators behave like normal functions wrt
local variable cleanup at function exit.

Non-generator and generator implementations of return opcodes are now
unified (except for storing results). Unwinder now knows how to unwind
generator frames and ContHandle opcode is no longer needed.

Reviewed By: @jdelong

Differential Revision: D1276267
Move static properties into RDS

Rather than maintaining an RDS handle to a pointer to an array of
TypedValue*'s and writing those pointers into a target cache, instead we
allocate the TypedValue's directly in RDS, and maintain an array of
handles.  This lets us obtain pointers to static properties without any
loads.

We replace LdClsPropAddrCached with LdClsPropAddrKnown, which is
codegen'd together with InitSProps.

Additionally, we eliminate the special-cased branch-or-catch logic for
LdClsPropAddr*, which was needed for Isset/Empty versus other S-opcodes.
Instead, we split LdClsPropAddr into LdClsPropAddrOrNull and
LdClsPropAddrOrRaise, and use CheckNonNull to branch.

This diff also eliminates LdClsStaticInitData (since there is no longer
an init vector for static props), as well as the SPropCache.

In addition, there are two bugfixes:

- Class::initSProps() can potentially throw, so we actually need catch
  blocks whenever we call Class::getSProp()---we now pass these in for
  IssetS and EmptyS along with the other S opcodes.

- We can only use the cached version of LdClsPropAddr when no 86sinit's
  will be called when we invoke getSProp().  Previously, we were only
  checking for such initializers on the Class in question, but not its
  inheritance chain, whose inits would also be called.

Reviewed By: @jdelong

Differential Revision: D1256221
Allow Machine overrides from the command line

I was going to do this a while back, but in light of the
hdf -> ini migration decided to hold off. But thats taking a while,
and it seems to be pretty useful, so lets get it done (and then match
it in the .ini version).

Reviewed By: @jdelong

Differential Revision: D1274676
MethodCache: namespace, rename things, minor cleanup

This is mostly a renaming diff.  There were a couple of inconsistencies,
so I just made some decisions before getting into more code smashing for
another pre-cache layer:

- template<bool fatal> instead of template<bool Fatal>
- read[TypeOfMethod] instead of methodCacheMagicOrStatic and
  staticPublicSlowPath (doesn't seem like there's anything slower about
  the latter than the former)
- lookup() instead of methodCacheSlowerPath()
- primeCache instead of pmethodCache.  What is a pmethod?
- use constants for mov instr size and immediate offset

Reviewed By: @jdelong

Differential Revision: D1275140
Add missing libxml constants

Some of these constants are only defined in zend php with libxml 2.7.x, so I bumped libxml version.  (Ubuntu 12.04 has 2.7.8.  Ubuntu 10.04 has 2.7.6.)

References #2229
Closes #2380

Reviewed By: @scannell

Differential Revision: D1270126

Pulled By: @alexmalyshev
Fix glob on empty directory for SafeFileAccess.

Fixes https://github.com/facebook/hhvm/issues/2389.

Closes #2389
Closes #2394

Reviewed By: @ptarjan

Differential Revision: D1272641

Pulled By: @alexmalyshev
Add support for checking types of methods

Closes #2425

Reviewed By: @scannell

Differential Revision: D1274786

Pulled By: @alexmalyshev
use config file to init the default for every ini setting

If there is a config file setting, we want it to be the default for any setting no matter when they are registered. It looks like `threadInit` is actually being called on every single request, so the system settings arne't applying (since we don't want to reparse the ini file every time).

Instead, I made a map of all the settings and something new is bound, I use that map for the default.

There were a few snags, namely the two special things in `ExecutionContext`. It is not a perf regression to do the lookup and parsing at every request startup.

Reviewed By: @jdelong

Differential Revision: D1264692
variadic functions: account for variadics in method compat checks

This diff follows the rules surrounding method compatibility
 laid out in https://wiki.php.net/rfc/variadics. Type constraints on
 variadics are disallowed in the parser, but this code should be fine
 even when type constraints show up.

Reviewed By: @paroski

Differential Revision: D1246812
move third-party include before HPHP_HOME include

Reviewed By: @sgolemon

Differential Revision: D1274227
Update parser generation to match fb version

Reviewed By: @sgolemon

Differential Revision: D1267519
Populate the errorInfo field when exceptions are raised by PDOStatement objects

Fixes #2392.
Closes #2395

Reviewed By: @ptarjan

Differential Revision: D1277902

Pulled By: @sgolemon
rename sortRegion() to sortRegions() and clarify comment

Reviewed By: @ottoni

Differential Revision: D1277085
Expand typedefs when doing a string concat

In strict mode, we'd `raise Ignore` because we thought this
class didn't exist, even though it was just an unexpanded typedef. I'm
not sure that `raise Ignore` is the right thing to do -- I guess we'll
have yelled elsewhere about an undefined class? -- but in any event it
was causing some code to not get checked and we even failed to verify
that the string concat was legal.

This is kind of obnoxious -- again, I hate that every code anywhere in
`hh_server` that has to look up a class has to be aware of typedefs.
This is the second or third bug where we've missed a spot where typedefs
should be expanded, leading to an inscruitable error message.

That said, I don't know of a better strategy offhand :\

Fixes #2272

Reviewed By: @elgenie

Differential Revision: D1254679
Revert "Make getStaticVariables() and getClosure() more compatible with PHP5."

Assertion failures. Breaks most OSS frameworks in debug builds

Reviewed By: @jano

Differential Revision: D1278715
Sync up cmake build system with fb build system

Reviewed By: @sgolemon

Differential Revision: D1274238
Only add third-party for fb-cmake build

It's already there for non-fb-cmake builds