Fix default value text for ReflectionFunction

The escaping used by outputPHP produces valid PHP, but it is
sometimes a string concatenation expression which can't be directly
substituted in as the default value of a function. This diff adds a
new mode to VariableSerializer that will always output a single string
literal for string values.
Fix expected string for TestHint

A previous diff made a couple changes to the text returned from
ReflectionFunction::getDefaultValueText() (it now returns
double-quoted strings and uppercase NULL constants). I forgot to
update TestHint which tests this.
Don't emit FCallBuiltin for redefinable builtins

We were emitting FCallBuiltin at emit time for "idx", but were
resolving "idx" to the user-defined function at runtime.
Remove a bunch of unnecessary double-semicolons

I saw these in ir.h and found a few more with git grep.
Use delete (not free) for deallocating new'd memory.

A few random places where blocks are being allocated
with new, but deallocated with free.
Make SIMPLIFY_CMP not a macro

Made it easier to debug/edit this function.