Reboot is no longer needed after installation
Remove unnecessary version parameter
grin.forEach

Iterate over each package
getFromPackage and resolvePackageRoot

Function to get the full path from a path and a package name. And a
function to get the full path to the root of a package.
Startup files for packages
Check argument types
Fixed getLatestInstalledVersion
Don't reinstall packages that already exist