add .idea to .gitignore and convert to unix
Add group to Node tasks.
Delay the plugin task addition until project.afterEvaluate

This is required in the Node plugin because part of the plugin
configuration allows for configuring the Node tasks that are added to
the project. Executing this code without project.afterEvaluate results
in the NodeExtension.addTasks property to always be null during the
plugin apply since Gradle hasn't eval'ed the entire script yet.
Using project.afterEvaluate allows Gradle to process the script and set
the extension properties before trying to add tasks.

Additionally added some null saftey in NodePlugin when trying to
configure the setup dependency on tasks that may not exist dependening
on the user configuration.
Merge
Merge review and updates