Tweak gitignore

Summary: tags files should be ignored at all subdirectory depths; sometimes I want to
limit my search to a small subset of files, e.g. when working on Hack I only
want a tags file for hphp/hack/src

I am also using a .vimrc with project-specific configuration, so it would be
nice to have that gitignored too.

Reviewed By: @ptarjan

Differential Revision: D1557634
Create hphpize man page

Summary: In addition to our hhvm man page, Debian also wants a man page for hphpize that describes how to create dynamically shared objects.

Reviewed By: @ptarjan

Differential Revision: D1556869
Add cli config options to hhvm wrapper

Summary: We added the ability to specify config files; now let's have cli options too.

(I am thinking of possible short options for these too, down the road)

Reviewed By: @ptarjan

Differential Revision: D1554418
Update third-party for thrift as a submodule

Summary: Update third-party rev past thrift as a submodule

Reviewed By: @ptarjan

Differential Revision: D1552877
Fix emitter crash from a goto inside a try-finally

Summary: If there was a goto inside the try block of a try-finally, with no other
region (such as a loop) around it, the emitter would crash. We didn't
need to check for m_parent's goto labels, because the loop header
already starts the search at the current region's parent.

Note that this still behaves incorrectly for a goto out of two nested
try-finally regions, e.g.:

```
try {
  try {
    goto bluh;
  } finally {
    // one
  }
} finally {
  // two
}
bluh:
...
```

In this case, `one` will get executed and then jump straight to `bluh`.
None of our active test cases test this yet (some of the zend/bad ones
do, though). I think this may require a deeper fix.

Reviewed By: @jdelong

Differential Revision: D1555786
Modify procedural interface of XMLWriter to accept resource instead of an object

Summary: fixes #3207

Modify procedural interface of XMLWriter to accept resource instead of an object

https://github.com/facebook/hhvm/issues/3207

Reviewed By: @fredemmott

Differential Revision: D1514334
Convert filter to HNI

Summary: fixes #3705

Reviewed By: @ptarjan

Differential Revision: D1545181
Hooked stream_metadata(..) on touch(..)

Summary: facebook/hhvm#3687

When `touch(..)` is passed a path that denotes a user file, call `stream_metadata(..)` (if implemented) in the registered class.

Reviewed By: @ptarjan

Differential Revision: D1550205
Update bcMap start addresses using first adjusted address.

Summary: Use first of the corresponding addresses after relocation to update bcMap. This produces contigues addresses in TC dump, the way tc-print expects them.

Reviewed By: @markw65

Differential Revision: D1555751
Fix undefined index notice on session_start() for Redis session handler

Summary: Fix for "Undefined index: scheme" notice on `session_start()` if `session.save_path` does not contain URL scheme (for example, "localhost:6379").
Closes https://github.com/facebook/hhvm/pull/3743

Reviewed By: @sgolemon

Differential Revision: D1552797
Fix JS tests

Reviewed By: @aryx

Differential Revision: D1547557
Remove misleading default for Server.Threadcount

Summary: It's not used, and is confusing.

Reviewed By: @ptarjan

Differential Revision: D1553864
ReflectionClass::getFileName to return false for built-in classes

Summary: Fixes facebook/hhvm#3631

Reviewed By: @ptarjan

Differential Revision: D1553423
Increase timeout

Summary: Also improve messaging a little bit so what's actually going on when the
client times out is more clear to the developer.

Reviewed By: @jwatzman

Differential Revision: D1558330
Fix various zlib tests

Summary: Closes https://github.com/facebook/hhvm/pull/3742

Reviewed By: @sgolemon

Differential Revision: D1552829
Fix unsafeexpr parsing.

Summary: The lexeme_start of the unsafeexpr token used to be misplaced. This
caused parse errors whenever the parser invoked L.back, because we would only
backtrack over the '*/' sub-token.

Reviewed By: @jwatzman

Differential Revision: D1557591
Add surprise checks to range()

Summary: range() can be made to allocate an unbounded amount of memory in a C++
loop, so we need surprise checks. Do it every 1000 steps (no scientific
justification for this number). The `unsigned char` overload of
ArrayUtil::Range doesn't need this because it can result in an array of
at most 256 elements.

Reviewed By: @edwinsmith

Differential Revision: D1552594
Remove Class::findMethodBaseClass and Class::declaredMethod

Summary: Neither are used except to implement an assert.

Reviewed By: @edwinsmith

Differential Revision: D1557057
Don't crash when trying to do array-vtable calls if they aren't in low mem

Summary: OSS bug reported from someone with address space randomization on.

Closes #3427

Reviewed By: @ptarjan

Differential Revision: D1555998
Reduce sizeof(UserAttributeMap) to optimize for the empty-map case

Summary: Also moved a few other things around to get ParamInfo to cross a size
class boundary.  (We could probably optimize the space for non-empty attribute
maps further by switching the map to a sorted vector, but I'm suspecting
non-empty maps are relatively rare.)

Reviewed By: @bertmaher

Differential Revision: D1554748