Update dependencies and shrinkwrap their versions
Fix problems that package upgrades caused
Code style changes
Migrate to Gulp, configure jshint and fix lint errors