Use Mozilla's colors for itembox and tagbox background
This way, the colors play nicely with Windows themes (e.g. high contrast)
Re https://forums.zotero.org/discussion/38870/make-zotero-fully-recognize-windowsff-high-contrast-themes/ and https://twitter.com/stuffilike2know/status/504167872567189504
Small fix to copyObject
Update submodules, repotime, versions
Update citeproc-js to 1.0.539
test for presence of author's firstName before using it
Don't unwrap objects passed to chrome

Unwrapping objects also waives the Xray wrappers for contained objects,
which we need.
Fix MODS under Fx 32
Fix DataCite under Fx 32
fix indenting
Merge pull request #536 from adam3smith/coinsfix

test for presence of author's firstName before using it
Fix == use
Merge pull request #531 from aurimasv/high-contrast

Use Mozilla's colors for itembox and tagbox background
Merge branch '4.0'

Conflicts:
	chrome/content/zotero/xpcom/zotero.js
	install.rdf
	update.rdf
Merge branch 'master' into async_db
Fix error fetching empty file via File.getContentsAsync()
Don't try to load uncommitted files
Update zotero:// extensions (report, timeline, etc.) for async DB, and more

- Protocol handler extensions can now handle promises and can also make
  data available as it's ready instead of all at once (e.g., reports now
  output one entry at a time)
- zotero:// URL syntaxes are now more consistent and closer to the web
  API (old URLs should work, but some may currently be broken)

Also:

- Code to generate server API, currently available for testing via
  zotero://data URLs but eventually moving to HTTP -- zotero://data URLs match
  web API URLs, with a different prefix for the personal library (/library vs.
  /users/12345)
- Miscellaneous fixes to data objects

Under the hood:

- Extensions now return an AsyncChannel, which is an nsIChannel implementation
  that takes a promise-yielding generator that returns a string,
  nsIAsyncInputStream, or file that will be used for the channel's data
- New function Zotero.Utilities.Internal.getAsyncInputStream() takes a
  generator that yields either promises or strings and returns an async input
  stream filled with the yielded strings
- Zotero.Router parsers URLs and extract parameters
- Zotero.Item.toResponseJSON()