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)
@fjarrett Can't we use the existing query to update our marker rather than execute a new query ? ie: add an action here to be executed after the list query is finished.
Plus that a user might navigate directly to a specific paginated page, ie: `/page/2`, ( using an email link or something from another admin ) and that should not indicate that he looked at everything. ( I'm not sure if a user can reach `/page/2` page now or not, but he should be anyway, even if he cannot do it currently, we might want to implement it in the future ).