Full-text content syncing

Full-text content is now synced to the server and other clients. Up to
~500K of content is transferred with each sync, so multiple syncs may be
necessary. Downloaded content is written to temporary files and
processed on idle (currently 5 seconds), so synced content may not be
immediately available.

Performance will improve with API syncing and async DB in 4.1.

This also includes some other full-text tweaks, such as storing
text converted from HTML in cache files, which may speed up phrase
searching.
Don't truncate HTML file content in full-text sync

Also write a cache file for HTML files at index time
Fix index rebuild
Better handling of maxLength and HTML

- Don't truncate before HTML conversion
- Correctly calculate indexed chars and total chars
- Move HTML conversion code into one function
Order by clientDateModified DESC when getting content to upload

This way content from newly added/modified items will get uploaded
before content from older items.
Don't attempt to select items that are not in the item tree
Merge pull request #408 from aurimasv/dupFilter

Don't attempt to select items that are not in the item tree
Close transaction before updating progress indicator

Should fix #230
Remove Zotero.wait() from Zotero.Collection.addItems

Since this is inside a transaction, it could potentially cause more
state check errors
Don't delete collection on partial import
Add pref to disable full-text syncing, and prompt existing users on sync

FT sync is enabled by default for new users and configurable in the Sync
prefs.

Also disable downgrades once full-text sync is enabled, since otherwise
someone switching back and forth between old and new versions could miss
full-text content updates.
Blacklist some more messages from error reports
"other computers" => "other linked devices"
Cache Zotero.userID and Zotero.libraryID
Undo tree row spacing change in Fx25 on Windows
Back up database before disabling downgrade
Make sure we broadcast lockReleased on shutdown

Previously a startup error could result in the database being opened
and closed with no lockReleased message
Modify behavior on Zotero Standalone launch to account for failure

- Close Zotero pane before database is closed prior to reload, instead
  of waiting until reload is complete
- Show an error message if Zotero Standalone is not accessible when it
  should be
Revert changes to styles and translators heads in previous commit
Localize full-text sync strings