ETag support for group metadata

Includes ETag header and /users/<userID>/groups?format=etags
Multiple collection creation via API

- POST /collections with 'collections' property
- Creating a single collection without 'collections' is still supported
- Collection creation now returns 201, as documented
- collectionKey=<key>,<key>,<key> support
- order=itemKeyList is now order=keyList and works for itemKey and collectionKey
- The canonical order of query parameters is now a bit more logical (which unfortunately could change some Atom ids)
Make 'parent' property optional for collections

This means that a PUT for a subcollection without a 'parent' property would become a root collection.
API::parseDataFromItemEntry -> API::parseDataFromAtomEntry in remote tests
Test multiple collection creation
Rename test files so that they're actually run...
Zotero-Last-Modified-Version for items and collections (w/schema changes)
Warn if transaction is open at request end

Also automatically roll back open transactions for 4xx/5xx errors, and change some die() calls to pass through the closing function
Fix conditional order for $all=true in Zotero_DB::rollback()
When getting Unix timestamp for DB transaction, check the right variable
Multi-collection editing with 'collectionKey' parameter

This also reverts the response code for new collection creation to 200 from 201, because a POST to /collections can now create or modify collections.
Update error message
Update comment
More version support, including single-item Zotero-If-Unmodified-Since-Version

Also return 200 instead of 201 for item creation requests, since it's now possible to edit multiple items using the same requests.
Add comment to debug variable
Debugging line
Single-object version support for collections
More version support for items and collections

- ?newer=<version>
- <content version="<version>">
- Removed API version mechanism
- Code reorganization and cleanup
Redo HTTP response code handling, passing everything through closing function
304 Not Modified support for collections and items

Also:

- Consolidate single-object version checking
- Return 428 Precondition Required instead of 400 for missing Zotero-If-Unmodified-Since-Version/If-Match