fix(config): #1113 Watching is not working properly on linux

Solve bug in watch service by using pooling

Closes #1113
Merge branch 'pr-1114' into presubmit-master-pr-1114
chore: release v0.12.20
fix(web-server): cache static files

Files in `karma/static/*` were always read from file system.
These files typically don’t change (except when developing Karma itself)
and so it makes sense to cache them in memory.
Especially `./static/context.html`, which is read for every test run.

The main reason for this change is that when using native events
(non-polling), watching can easily hit the EMFILE limit and then this
`fs.readFile()` can be super delayed. This was easily reproducible
problem in AngularJS test suite.
chore: release v0.12.21
fix(preprocessor): treat *.tgz, *.tbz2, *.txz & *.xz as binary

Tarballs often use extensions joined with used compression, e.g. *.tgz instead
of *.tar.bz.

Also, there is a new xz lossless compression format that is slower but gives
better results than gzip or bzip2.