updates for api v3

- update js to use v3 api
- update php to use v3 api
- Zotero.Net request manager
Zotero.Net manages API requests, only allowing N requests to run
concurrently and (theoretically) respecting backoff/retry-after.
Queued requests can be individual or arrays that will run
sequentially (and hold a single concurrency spot).
- Zotero.Items and Zotero.Collections are both Zotero.Container types
- Cleaned up Idb code to use generic functions + convenience wrappers,
and use the new api objects from v3 api as the objects stored in idb.
- update item syncing, including moving tagstrings into a _supplement object
in item apiObj
- use Intl collator when available
- stop using items.displayItemsArray
This was necessary when widgets re-activated on every pushState, but now we
can properly just rely on the items returned by the promise when they're loaded
and don't need to separately keep track of what's displayed here in the library
when that should be tied to specific widgets
- clean up obsolete code
- update jquery
fix sendToLibrary and library base url
fix group writable check
put fetched groups into response and return response
add back some xml parsing and minor php v3 fixes
tweak Net error handling; change some debugs to errors
php updated for v3

also namespaced to \Zotero