Apparently the "engines" files of package.json is no longer checked
regularly when performing installs. With the changes and different
behaviors across different version of Node & NPM, and having no other
way to ensure everybody contributing is on the same page, this
preinstall check is necessary.
This heavily relies on "SemVer" NPM package, but in order to actually
check this prior to the first set of packages installed the code needs
to be there. So this is a slimmed down version of SemVer and syntax has
been updated.