@shane-tomlinson Not a huge deal for this specific issue, but a lot of this file is a one-off implementation of a deferred. If we have jQuery on the page, we could use $.Deferred to separate the app logic from the flow control logic.

I took an hour timebox and [implemented a version](https://github.com/6a68/browserid/blob/be9a7b6ed5523a94b38e341877641220dda88901/resources/static/common/js/crypto-loader.js) that uses Deferreds--not necessarily for this patch, but just to stimulate conversation. (I ran out of time before I had a chance to test my code--I can go another hour if you want to dig in.)