add generic progress modal for log operations
Change jQuery Deferreds to JS/DOM Promises
widget cleanup

- Move Zotero.nav functionality to Zotero.State object which can be carried
around, shouldn't require using/modifying Location, and can assist having
multiple libraries with different variables on the same page. For vanilla
Zotero library page right now the single required State object is stored in
Zotero.state. There are still references to this where there probably
shouldn't be.
- Remove some old ajaxload code
- Clean up resolving the Zotero library associated with a widget element
- Clean up sync callbacks for widgets that sync. Since it's triggered by
events instead of url changes we can just attempt to sync without checking
whether data has been loaded for the library/widget yet.
- Clean up references in a bunch of widget functions where porting had left
multiple references to the same jQuery objects.
update jsrender and use {{props}}
add colored tags to items list
explicitly allow storage of selected item keys in state
update eventful

- remove web-library trigger/listen calls since it's part of libZotero now
- update eventfultrigger dom elements to use library as a filter
update widgets

- update libZotero
- use filtered events so widgets associated with one library don't respond
to events triggered by another library
- use State object to store selected item keys so there will not be dependencies
on particular widget layout or behaviour
- fix create collection callback
- add sendToLibrary dialog widget
- add colored tag icons to item rows
- add colored tags to tag selector (still need to do something to ensure text
is always readable)
- minor fixes to breakage from eventful and promises that hadn't been tested