Feature/fix child process type checking

https://github.com/joyent/node/pull/8392 introduced a test that doesn't fail when the code it is testing is deleted.

Also, behaviour of execFile and spawn have drifted apart again, unnecessarily, I think. This brings them into line again.

/to @cjihrig  
I think this could cause problems in `execFile()` since `arguments[1]` could be a function too. Maybe throw in a check for `arguments[1] !== callback`