Sync toolbar button state to sidebar truth
Refactor drafts service to add discard callbacks

This change may affect #803 and #805.
Confirm draft discard before highlight mode

For #798
On highlight mode, check social view / auth

For #798
Ensure always on set by sidebar state

Refactored the way changing the tool triggers setting visible highlights.
The change should always ensure better interaction if other components
change the tool or highlight state in the future and trigger events.
Confirm draft discard on any tool change

Prevents losing track of drafts when switching from highlighter to
comment tool if replies have been started in the sidebar.
On-going hl switch / editing / draft interactions

- Wait until we have a token to finish on-going edits
- Make sure to reset the on-going highlight switch
- No need to cancel on route change now that draft discarding does that
Check for drafts when logging out
Fix authentication reset

On $reset event, authentication model fields weren't being cleared.
Refactor ongoing edit / draft interaction slightly

This is so that an ongoing edit does not become a draft until login
is completed. Otherwise, we leak drafts when the login pop-up is
ignored.
Reset after an auth timeout (60s) or cancel

This should ensure that after a user decides not to log in their
ongoing edits or highlight switches are cancelled and any partially
entered login details are cleared.
dead code
Don't flash notifications on startup

Fixes #819
Fix toolbar notifications for count == 9

Fixes #820