nodejs-fixdep: use real option parsing

(cherry picked from commit 811d37582f13bfc059681a1fbd6483c0f756b433)
support modifying optionalDependencies and devDependencies

(cherry picked from commit 6ba2403e70ff3c4eabbc44ddfd139b9c17728f4b)
req: support the caret operator

for full details regarding the semantics, see:
https://github.com/isaacs/node-semver#ranges

(cherry picked from commit be8f1004baba5bc98cee4a9df195b149a7a46243)
nodejs-symlink-deps: add --force option

if a bundled dep is encoutered, this option will force nodejs-symlink-deps
to delete the bundled dep and replace it with a symlink.

This option is useful for development, where you might have some deps already present
in the distribution but want to use bundled or npm installed copies for others.

This option should NEVER be used in offical Fedora spec files.

(cherry picked from commit dd772ada44fddcb1ef69483f9af467a29d749505)
nodejs-symlink-deps: add --build alias for --check

(cherry picked from commit 0612d5dfea97d1a46e4dfdd903f9bbd759b8b153)
nodejs-fixdep: support converting to caret dependencies

(cherry picked from commit 308059aafad4fb8d43f7d607392c9bb28a90b525)
nodejs-fixdep: support non-dictionary dependency properties

Surprised this hasn't blown up in someone's face already...

(cherry picked from commit 5f1c83d9cbaf65c3e44517bf036b89dec2ef81e2)
multiver_modules: add nan

(cherry picked from commit 0cd195b0675ff662f5f9625a2fe6f3b1cd9b43c9)