spawn: include cmd in child errors fixes #3908

factor to centralize
wrap child, make it aware of filename

Some work has already been done to report the name of a missing lifecycle script.
Extended lifecycle script ENOENT reporting to add missing script name on summary err line, 

npm ERR! Failed at the x@1.2.3 start script 'wharble-garble-blorst'

Centralized all calls to spawn, they now go through lib/utils/spawn.js

Added "ENOENT" case to error-handler, added test to exercise it by simulating missing `emacsclient`