fix socket get_path

Summary: Running the server over a sufficiently long root path
would cause an insta-crash due to a substring error in
the function that derives a socket path from root and
username. This is a simple fix.

Reviewed By: @gabelevi

Differential Revision: D1663068

Signature: t1:1663068:1415392614:c71cab26d02625aa4cb9e18e0c60073e9df0b7e1
Add some more Memcached constants

Summary: We were missing some constants, so I added them.

`RES_SERVER_TEMPORARILY_DISABLED` was a bit hard to find actually. I found a blog that
seemed reasonable for the value. That is commented in the code.

Fixes #3880

Reviewed By: @paulbiss

Differential Revision: D1666329

Signature: t1:1666329:1415344594:2244b3bb58c2cb113982f5d583b63f7521cd0f36
Allow mysqli objects to be passed into the mysqli_result constructor

Summary: Currently we only allow resources to be passed to `mysqli_result::__construct`. Apparently there is an undocumented feature that allows `mysqli` objects to also be passed in as well. In fact, it seems PHP 5.x pretty much allows anything to be passed to the constructor and it will just warn that properties aren't available and move on. I didn't go that far.

Fixes #2082

Reviewed By: @paulbiss

Differential Revision: D1663326

Signature: t1:1663326:1415332481:de9b5479c64e476b8801efe4ae3bcb84698fcfcf
Provide mechanism to "blacklist" tests that must be run serially

Summary: @​swtaarrs noticed that `ext_memcached` tests couldn't be run in parallel because
of key collisions. So, we now have a way to make sure they (and other tests that
we deem "parallel challenged") to always run serially.

Note: This could slow the test runner down just a bit, of course, when running these
tests. However, with memcached off, there is not a really big noticeable difference. Right now I found 5 memcached tests that have to be run this way. The slowness will be more
noticeable with the fewer tests you run that include the serial ones, since we have to
reduce the number of threads. However, for large test sets, there should be minimal
differences since we maxed the number of threads anyway.

Fixes #3884

Reviewed By: @paulbiss

Differential Revision: D1666135

Signature: t1:1666135:1415344877:5bfdad4d0bf63ed3019f17846d66b34ea35782e1
Fix branch shrinking code

Summary: The branch shrinking code assumed that if it was
possible to shrink a branch in the source of the relocation,
then it was possible in the destination. Thats not true because
some instructions need special treatment at page boundaries,
which can cause nops to be inserted.

The solution is to iterate, marking the failed ones wide. Since
its possible that a branch was already emitted in narrow form by
code gen, and it may no longer be possible after relocation,
also add code to widen branches when necessary.

This exposed bugs in the rewind code, when an exception is thrown
from relocate, so fix those too.

Reviewed By: @edwinsmith

Differential Revision: D1664748