Added better error checking for solidity compilation errors
Extracted timer functionality for downloading packages so it works across the main process and child processes.
Npm class is instantiated only once and reused for event commands.
Npm class can handle concurrent requests for the same package and callback the installation result for each request.