child_process: add type checking for "args" param

This commit ensures that the "args" parameter is either:

1. Undefined or null (defaulting "args" to []).
2. The callback parameter (defaulting "args" to []).
3. An array.

All other values will throw a TypeError.

Fixes #8249.

I believe this will still allow the same problematic behavior if the user passes in the empty string.