Use web workers to compute SHA256

A new pull requests with local branches for #473. Address/fixes #186.
This works and will always work because ```ping``` will only happen inside ```WebCryptoWorker```.
However... This code is inside ```BaseCryptoWorker``` and it is an implemantation detail. ```FallbackCryptoWorker``` doesn't have a ```@worker```. I would move this in separate method that will only be implemented in ```WebCryptoWorker```. We have separate methods for ```finalize``` / ```update``` anyway.