Small fix for ContSuspend* instructions

The ContSuspend* instructions were not marked as "terminal" (TF), and so
the bytecode emitter thought it was possible to these instructions to fall
through and there some unnecessary Null instructions being emitted for
"yield" expressions to satisfy asserts in the bytecode emitter.

This marks the ContSuspend* instructions as "terminal" and gets rid of the
unnecessary Null instructions that were being emitted.

Reviewed By: @jdelong

Differential Revision: D1039548
Delete unused string_concat() and string_trim()

They are dead code.

Reviewed By: @bertmaher

Differential Revision: D1040044
Remove deprecated methods

Remove the deprecated methods hphp_thread_set_warmup_enabled/hphp_thread_is_warmup_enabled

Reviewed By: @ptarjan

Differential Revision: D1026245
start supporting date.timezone INI setting

We need to initialize the timezone or else we get a warning in the logs. I could have added a -v option, but I want to start putting things in the INI files when they exactly correspond to a PHP ini setting.

I created a `php.ini` file just for the test runner and forced us to use it.

Reviewed By: @JoelMarcey

Differential Revision: D1040418
Fix refCounting issues with various String functions

Some functions took a const String&, but assumed
that if the refCount was 1 they could destroy the parameter.

This is fine for calls from the vm, because it always refcounts
correctly, but can lead to surprising results for calls from c++
code.

It turns out that (for g++/x86 at least) the actual calling convention
for a function taking a String is identical to one taking a const String&
(ie its the caller's responsibility to pass a reference to a
temporary in the former case). So this diff just changes them
over to be String (which required a bit of hackery in the code to
generate the vm stubs). That fixes the issue for calls from c++, and
has no effect on calls from the vm.

Reviewed By: @jdelong

Differential Revision: D1040836
Added async stack inspection and traversal to hphpd

Debugger commands 'up','down' and 'variable' now operate on the async
stack as well as the regular stack. If used in conjuction with 'where async'
the awaitable dependency stack is traversed instead of the regular stack
by the said commands.

Reviewed By: @mikemag

Differential Revision: D1034548
Reduce default JIT structure sizes

Right now HHVM allocates about 1.2 GB of memory by default.
Reduce this by a factor of ~10 for a better experience with small
applications, VMs with limited memory, evaluation and testing purposes,
etc.

The configuration settings are available to change this to the previous
behavior is reproduced here for ease of access:

Eval {
  JitAHotSize = 4194304
  JitASize = 536870912
  JitAProfSize = 536870912
  JitAStubsSize = 536870912
  JitGlobalDataSize = 134217728
}

Reviewed By: @markw65

Differential Revision: D1034305
Relax guard on input of SetM

Reviewed By: @ottoni

Differential Revision: D1041679
Avoid DV initializer loop in prologues for small number of DVs

We were always generating a loop like:
     0xd800252: mov eax, 0x1
     0xd800257: sub rbx, 0x10
     0xd80025b: inc eax
     0xd80025d: mov byte ptr [rbx+0x8], 0x0
     0xd800261: cmp eax, 0x2
     0xd800264: jl 0xd800257
to set the DVs that didn't get a value passed in to Uninit.

This diff unrolls the loop for small number of values to be
initialized.

Reviewed By: @jdelong

Differential Revision: D1041394
Change CheckSymLink default to match Zend

CheckSymLink (following symlinks and making the realpath calls)
is the Zend behavior so we should default to this as well and allow
people to disable it for performance reasons instead of the inverse.

Depends on D1034342

Reviewed By: @ptarjan

Differential Revision: D1034354