refactor to use npm instead of custom caching

Please test this throughly and report back any errors.

@janl @boennemann @caolan @gr2m