Fix display of missing data directory startup error in Standalone
Fix Redo via Cmd-Shift-Z in notes on OS X
Redo instead of toggling Z pane in text fields (except search bar) on OS X

Previously Cmd-Shift-Z worked for redo in text areas (Abstract, Extra)
but would toggle the Zotero pane in regular text fields. This change
allows Redo to work as expected.

The search bar gets focus when you first open the Zotero pane, though,
so we don't redo there, since it would be annoying if you couldn't close
the pane immediately with the same shortcut.
Handle lowercase shortcut key pref values

Honor lowercase pref values for shortcut keys, and also always display
and set shortcut keys as uppercase in the preferences
Update versions
Fix gray bar when resizing Zotero pane down

Caused by new toolbar icon guidance panel
[RDF] Encode > in content when serializing to XML
This avoids the invalid combination "]]>" from appearing in the output
Merge pull request #477 from aurimasv/RDF-serialize-XML

[RDF] Encode > in content when serializing to XML
Allow items to be moved (not copied) between collections w/modifier key

Cmd on OS X, Shift on Windows/Linux

How do I not get to close a ticket for this?

Unfortunately on Windows it doesn't seem possible to set the cursor
effect to arbitrary states (see note in libraryTreeView.js::
_setDropEffect() for the gory details), so this just uses the default
cursor there. On OS X and Linux the cursor reflects the requested
action.
Updates locales from Transifex
Use var in place of let

This makes uglifyjs happier
Merge branch '4.0' of github.com:zotero/zotero into 4.0
Use var instead of let

This code gets included into the bookmarklet, so uglifyjs has to like it
Revert "Use var in place of let"

This reverts commit 9b67d60197a448d09c074fd2bf16b1089b30adc8.

(I totally bungled this commit)
Fix parsing of January dates in Zotero.Date.strToISO()

https://forums.zotero.org/discussion/36550/#Item_6
Switch to array uniquing function that keeps the first instance

The previous version would keep only the last instance.

This version requires the array to contain only primitives of a single
data type, but I think that's OK for all of our uses. (This version
should also be faster.)
Configurable secondary sorting and other improvements

- Each column in the middle pane can now have its own persistent
  secondary sort column, configurable from a new submenu in the column
  picker menu (top right of items list). The settings are stored in
  extensions.zotero.secondarySort.[primaryField]. The submenu title
  includes the current primary field (e.g., "Secondary Sort (Creator)"),
  which is pretty weird, and I'm not sure I want to keep it, but it does
  convey that the setting is specific to the selected column.

- The fallback sort fields (firstCreator, date, title, dateAdded) are
  now configurable via the extensions.zotero.fallbackSort. Setting that
  pref to an empty string avoids all fallback sorts, which
  allows reverse-order clicking to set the order, as requested by
  @aurimasv in #275.

- The previous behavior of sorting based on the exact Creator string
  (rather than the actual creators) can now be restored with the
  extensions.zotero.sortCreatorAsString pref. (It simply circumvents all
  the newer code, so it's pretty safe.) This setting should result in
  faster sorting in large libraries that have many items with the same
  Creator string.

- Some of the lesser fields in the column picker menu are now in the
  More Columns submenu (which is now alphabetical)

- The "Type" column is now the less-ambiguous "Item Type".

- This uses a different method to modify the column picker menu that is
  simultaneously less and more hacky. (It no longer has to duplicate
  Mozilla code in a custom XBL binding that wouldn't reflect future
  upstream changes, and instead it bushwhacks its way through various
  boxObject properties to get to the underlying menupopup.)
Merge new English strings
'throw' -> 'throw new Error' in a couple places
Fix error when sorting by Item Type column (since dd477e15b8)