Login processing spinner and background-able cryptoUtil

This was originally intended to address #339 by adding a spinner and disabling the form fields while the login processing occurred.

While that change was relatively small, it revealed that during the heavy crypto computation the UI (including spinning gifs) would pause.  This PR includes a solution to that which is aggressive but may help future UI features remain responsive during cryptoUtil calls.  The solution utilizes web workers and attempts to gracefully degrade when they are not present.

Full disclosure: I have only tested the async cryptUtil messages for methods used in the  login process.