crypto: createDiffieHellman throw for bad args

Previously crypto.createDiffieHellman() would fail silently when a bad
argument was passed for prime/prime_length. Now throws TypeError.

Fixes: https://github.com/joyent/node/issues/8480
Signed-off-by: Trevor Norris <trev.norris@gmail.com>
doc: fix wording and punctuation in modules

[trev.norris@gmail.com: break lines at 80 characters]
Signed-off-by: Trevor Norris <trev.norris@gmail.com>
test: fix test-child-process-spawn-typeerror

You cannot spawn 'dir' on Windows because it's not an executable.  Also,
some people might have 'ls' on their path on Windows, so I changed
invalidCmd to something that's highly unlikely to exist.

Reviewed-by: Trevor Norris <trev.norris@gmail.com>
doc: correct createSecureContext

Remove incorrect stablity indication of tls.createSecureContext, and
format stablity indication of crypto.createCredentials.

Fixes: e50749 "doc: document `tls.createSecureContext`"
Reviewed-by: Trevor Norris <trev.norris@gmail.com>
streams: make setDefaultEncoding() throw

PR-URL: https://github.com/joyent/node/pull/8529
Fixes: f04f3a0 "streams: set default encoding for writable streams"
[trev.norris@gmail.com: update tests to check if throws]
Signed-off-by: Trevor Norris <trev.norris@gmail.com>
path: resolve normalize drive letter to lower case

make path.resolve work the same as path.normalize
src: normalize for Windows's sake
src: suppress orphan warnings
src: fix C4800 implicit casting of int to bool

Conflicts:
	src/node.cc
src: fix remaining warnings
deps: suppress known warnings

And now that we have a warnings free build
we can activate "treat warnings as errors".

Note: the 'node' target still has two suppress warning types