Refactor Node.gitignore with comments

This restructures the NodeJS gitignore to include comments explaining under what category each pattern is excluded, including a note that node_modules should sometimes not be gitignored as a Node convention.

The "build" directory is lost in this refactor, as many JS projects do wish to include a minified/concatenated version of their source in the "build" folder in source control.