Pin browserify to an older version to avoid an issue with sourcemaps

There is an open issue where when modules are externalized or deduped,
the contents of the module are not included in the source map, just a shim.
https://github.com/substack/node-browserify/issues/497
Use file extensions in alias list.

Seems to be necessary for newer versions of grunt-browserify
Split validation errors stream out of response stream.

Fixes an issue where on a generic error the validation error elements
were being shown despite there being no messages to display.
Added site wide error handling for non-validation errors. Fixes #629