Implement native RSA keygen using WebCrypto Apis

* Tested on Chrome and Firefox Nightly.
* Fall back to WebWorker if crypto.subtle is not supported.
* Refactor keygen code to be completely asynchronous.
* Callback is now mandatory for keygen.
If I don't init the worker with initWorker(path) then for all calls of generateKeyPair with callback I will get this log.
See fore example our tests on phantomjs. This made sense when callback always meant I want to use the worker variant. But this is not the case after we switch the generateKey method to callback-only style.