Display unread count badge in menu specific to the current user

Mostly resolves #588.

@lukecarbis @shadyvb please review.

1. I chose to only tackle the first item in the list. The others will need to be scoped out separately.
2. There is a user profile option for this. It's enabled by default. The unread count is specific for the current user.
3. The unread count **is not** affected by the current users' changes, it only counts changes made by others.
4. If there are more than 99 unread records, it just displays as 99+. This allows us to limit the update query by 100 records.
5. The user-specific unread count is stored in a transient with a 5 min TTL.
6. When you visit the Stream Records screen the unread count transient is deleted.
7. I had to make fixes to the `WP_Stream_Query` class because there were bugs in the `__in` and `__not_in` arguments.
8. I also deprecated `record_after` query argument in favor of `date_after`, and also added `date_before`.

![screen shot 2014-11-13 at 1 03 51 am](https://cloud.githubusercontent.com/assets/522158/5024777/1a699570-6ad5-11e4-8a81-d2c6beae3c5b.png)

![screen shot 2014-11-13 at 1 02 50 am](https://cloud.githubusercontent.com/assets/522158/5024783/378cfe58-6ad5-11e4-8c3a-a585d248378b.png)
@shadyvb Yeah this is a lazy way to mark as read, similar to when you open an unread conversation in Skype or something it gets marked as read immediately. Doing something really robust with pagination support of tracking individually loaded records might just be over-engineering it a bit too much from the start. We could always add something like that later, as you said.

Nice idea about piggy-backing on the existing list table query. I've done that in https://github.com/wp-stream/stream/commit/f3674c540e6130e611b3072279dc583222dc5ff5. Please have a look and verify.