Fix race conditions, revamp user settings system, introduce angularjs and jqueryui

Added waiting loops to each of our JS scripts so that they don't run until all of their external dependencies are satisfied.

User settings are now read/written directly from localstorage, never cached in a GokoSalvager.options hash.

Added jqueryui and angularjs using src/ext/externals.js, which probably could be better named.

Rewrote user settings dialog using JQueryUI's popup dialog method and angularjs's MVC binding, mostly to see if I could and if they were cool enough to warrant learning and using in future features. They definitely are.

Some features broke because I accidentally renamed options (I switched them all to snake case).  Should be ok now.