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.

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.