Keep watch running on errors

Prevent `watch` from stopping on errors by listening to `err` event, make it works well with all the plugins that emit errors properly (i.e. errors should be emitted by `this.emit('error', error)`).