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 noticed in my testing that not all commands suffered from this problem. For example, `ls` and `echo` are fine. I was able to reproduce the original issue after pulling your changes locally and updating the command in your test file to read:

```javascript
var c = execFile(process.execPath, '');
```