Use web workers to compute SHA256

A new pull requests with local branches for #473. Address/fixes #186.
`@transferrable` was simply never set. It means we were always using inefficient code path. :-(