Don't downgrade miarray on RemoveStr

Summary: Followup from cleanup diff. Shouldn't downgrade an miarray when trying to
remove a string since we know it's not there anyways.

Reviewed By: eletuchy, andrewparoski

Differential Revision: D1485668
Revert "Turn on Eval.EnableObjDestructCall by default"

Summary: This reverts commit 503cd581d80bc68edf46635b80ca8b11a6595fe6.

It breaks `hphp/test/quick/fc_enum_3.php`

Reviewed By: @alexmalyshev

Differential Revision: D1488073
Remove carriage returns from tests

Summary: Should not be in these files.

Reviewed By: joelm, liranuna

Differential Revision: D1487372
Put shebang line back into move_good_tests

Summary: Somehow this got lost during the import process.
Put it back in where it belongs.

Reviewed By: @ptarjan

Differential Revision: D1486580
Remove an invalid assert in LitstrTable

Summary: This assertion isn't valid here because we're just getting a handle to
the mutex.  This assertion was failing because we lock the table for reading
during emitHHBCVisitor (while GenerateTextHHBC is on), and meanwhile another
thread tries to mergeLitstr.  This is exactly what the mutex guards against,
since it prevents mergeLitstr from happening until GenerateText is done.

Reviewed By: @mxw

Differential Revision: D1487996
Allow NDI classes to set arbitrary ObjectData attributes

Summary: This will be used by ext/asio HNI conversion for IsWaitHandle

Reviewed By: @ptarjan

Differential Revision: D1458681
re-record Assetic

Summary: I have no idea where `scssc` was coming from, but we don't have it now...

https://github.com/kriswallsmith/assetic/blob/master/tests/Assetic/Test/Filter/ScssphpFilterTest.php#L26

Reviewed By: @fredemmott

Differential Revision: D1488318
Add an `hhx' gdb command for inspecting bytecode

Summary: I wanted to have this while debugging a core, but it didn't exist, so I
made it.  Maybe it will also be useful to people who aren't me.

Currently, immediates are only printed as numbers, but I'm going to add
a lookup.py which does lots of id-to-type lookups.  That should increase
sanity when debugging with cores or on opt builds when all the lookup
methods are inlined.

Everything is memoized because apparently gdb is really slow but Python
is fast(er).

Reviewed By: @edwinsmith

Differential Revision: D1488347
Allow miarray/msarray in GenArrayWaitHandle

Summary: Depends on D1483939

Reviewed By: @elgenie

Differential Revision: D1483968
more flakey tests

Summary: 2 use the network and one uses a hard-coded port

Reviewed By: @JoelMarcey

Differential Revision: D1488544
Implemented stating/stopping xdebug remote server

Summary: This diff implements correctly starting/stopping the xdebug remote debug
server, including initializing/deinitializing the dbgp protocol. The xdebug
server supports all the configuration options available in php5 xdebug.

A lot of this code started as the php5 xdebug code and so most of
the flow corresponds 1:1 to php5 xdebug. However, the code was very heavily
translated- all lines required some change of varying degree.
So feel free to bug me about style/structure as my goal is to keep this file
clean.

What's missing is responding to commands. There are quite a few of these.
Before that, I need to refactor the debugging hook code to work with non-hphpd
debuggers.

Reviewed By: @ptarjan

Differential Revision: D1473636
Refactored debugger-hooks to support non-hphpd debuggers

Summary: This diff touches a lot of areas related to the debugger so I'd like
feedback on the approach.  @mikemag I asked in irc who to talk to about the debugger
and was told no one really owns the debugger, but to cc you.

This diff refactors `runtime/vm/debugger-hooks` to support non-hphpd debuggers.
This is specifically important for xdebug, but the problem presented is the same
regardless of the debugger;. To add xdebug remote debugging, I would minimally
need to 1. hook into the debugging hooks 2. manage state between hphpd and
xdebug. This does both by abstracting the debug hook logic into a
`DebugHookHandler`.

Now, a debugger can register for debug events (breakpoints, exceptions, errors,
file/class/function loading, etc.) by subclassing `DebugHookHandler`
and then calling `DebugHookHandler::<T>attach` where `T` is the subclass. The
`DebugHookHandler` class manages allocating/deleting the subclass, which is why
the template parameter is used.

I've added a new class `DebuggerHookHandler` that enables the use of hphpd
using this change. The implementation of `DebuggerHookHandler` was moved
directly from `debugger-hook.cpp` and I've changed calls to
`ThreadInjectionData::setDebugger` into calls to
`DebugHookHandler::attach<DebuggerHookHandler>()`. So other than added
indirection, there are no changes to hphpd and so nothing should break.

Reviewed By: @ptarjan

Differential Revision: D1474540