make `npm run` respect `--silent`

Currently npm will write to the `console` when you call `npm run foo`.

With this change npm run will detect whether log level is set to silent and then NOT log to console.

**Usecase:**

we run `npm test` in a pre-commit hook. A succesful pre-commit hook should write nothing to stdout for text editor / IDE integration to work correctly. Currently npm prints `> cmd` to stdout which breaks our text editor / IDE integration.