Async Zotero.Translators.get* and Zotero.Translate.getTranslators

This mostly works, but there is still much to be done:

- getTranslators() calls in preferences_export.js and quickCopy.js need
  to be made asynchronous
- getTranslators() calls in mimeTypeHandler.js need to be made
  asynchronous. This looks hard, since there is a synchronous Mozilla
  API involved
- I need to test lookup, the connector server, and export more to make
  sure that they actually work
- This API needs to be implemented for the connector and bookmarklet
- Translators should be read off the disk using async IO
Update quickCopy.js and preferences_export.js for async getTranslators()
Fix returning translators from Zotero.Translate.getTranslators()
Update mimeTypeHandler for asynchronous getTranslators
Fix getTranslatorObject()
Import OS.File into Zotero global scope
Fix Zotero.Translator.save()
Fix connector server changes for async getTranslators()
Make translator loading asynchronous

Other changes:
- Factored out Zotero.Translators from Zotero.Translator. The latter
  should be usable in the bookmarklet and connectors without changes.
- configOptions, displayOptions, and hiddenPrefs no longer copy on
  read. I don't think this actually affects any existing code.
- Zotero.Translate._loadTranslator() now returns a promise
Merge branch 'async-translators'