major migrate.js refactoring

* move migrations and migrators to top of migrate.js
* migrations now array of { versionNumber: "#.#.#.#", go: function() { ... }
* RESStorage.RESOptionsVersion now uses migration version number (matching RES version number that we're upgrading to) instead of obscure integer