feat(web-server): cache preprocessed files

Now Karma does not write preprocessed files into disk (as the web server would read them) and store that in memory. Especially when running with multiple browsers (each browser has to fetch the file), this saves FS access (1 write per preprocessed file; x reads per preprocessed file, where x is number of captured browsers).

This is in trade for slightly higher memory usage. I however tried AngularJS with this change (forcing all the files to be processed/cached) and the memory consumption was not significantly higher.

We can optimize this to clean up the cache, especially if there is only a single browser captured
feat(web-server): use SHA hash instead of timestamps

Heavy caching relies on SHA of the content rather than mtime timestamps.

Benefits:
- touching a file (without changing content) does not re-fetch the file
- reverting a file does not re-fetch the file (browser will use the previous cache)
- changing preprocessor configuration does invalidate cache (Closes #520)
chore: update dev deps to use regular npm packages

As we don't need these unreleased ones anymore...
chore(travis): use "dots" reporters and disable debug logs