Add “unread” thread list filter, and refactor the “flagged” filter.

@gwprice
IMO, it would be a bit cleaner to make a `has_more` var initialized to false, then do
```
if threads.length == per_page
  has_more = true
  break
threads << thread
```