Handle errors better in gulp

Gulp uses node streams. We need to handle errors happening in those streams explicitly. This is causing unwanted things like `grunt watch` tasks breaking on syntax errors.