match PHP user-sort behavior

We can define our own sort functions for use in usort/uasort. PHP docs
say the following about returning 0 (equal) from these functions:
"If two members compare as equal, their relative order in the sorted
array is undefined."

PHP will assume the first argument is less than the second when we
return 0, while HHVM assumes it is greater than.

While it is bad to rely on the behavior of a specific runtime, it's
probably best to match PHP here. This fixes 6 additional zend tests that
were previously marked bad.

Fixes #2416.
Fixes #1781.