Refactor setCurrent

Remove all boolean arguments. Instead, pass an options object specifying
intentions. Still some annoying logic, but that's how it is. Easier to
understand what's going on now.
Reduce mark read debounce
Make sure these are getting $apply()'d
Change mark read on scroll to use setCurrent

fixes #168
Reduce pubsub manual delay to 6 hours

Previously, we would force a wait of 24 hours after a pubsub update. This
would prevent us polling, since pubsub appeared to be working. However,
pubsub sometimes doesn't work, and waiting 24 hours is too long. This
should really be limited by scheduleNextUpdate, too.
Mark read on scroll during a big scroll

If a scroll would have skipped items (maybe a page down), manually mark
them as read.
Special case the last element on mark read on scroll

When we hit the end, mark everything read and select the last element as
current.