Fix array_multisort to allow for first arg that can't be taken by reference

Summary: array_multisort accepts any non-zero number of arguments, and for all of
its varargs (everything except the first arg) it tries to take each
vararg by reference but allows varargs that can't be taken by reference
(for example, an array literal). However, HHVM's implementation of
array_multisort erroneously fatals (if called directly) or warns (if called
via call_user_func_array()) if its first arg cannot be taken by reference,
which differs from PHP5.

This diff fixes HHVM's implementation of array_multisort to allow its first
arg to be something that can't be taken by reference without raising any
warnings. It also fixes the "call_user_func_array('array_multisort', $args)"
use case so that it does not raise a warning if the first element in $args
is not a reference.

Closes #1486

Reviewed By: @ptarjan

Differential Revision: D1412141