Use semver service

Overview:

- use [semver.io](https://github.com/heroku/semver#readme) to resolve node version
- don't ever download node more than once: get the version right the first time
- add pro tips for dangerous or absent `engines.node` semver ranges