s/reddits/rules in the footer.
Remove unused jury duty organic box help.
Move "close help" link to bottom right corner to match "what's this".
Style help box so "close help" has the same font size as "what's this".
Fix spelling and grammar in help box.
&raquo; > &rsaquo;.
Fix indentation.
Make organic box sponsored link help translatable.
Include underscore.js.
Fire a pixel for UI flow tracking of sub/unsubscribe.

This will allow us to collect information about how users found
subreddits that they subscribe to. We can use this information to test
the effectiveness of new ways of discovering and subscribing to
subreddits.

Specifically, when the subscribe button is clicked, for the current page
and previous page: the URL, referrer URL, and the type of UI element
clicked are sent. We'll use this to answer questions like:

 * "did clicking on gizmo A lead to users subscribing to subreddit B?"
 * "why did we see a spike in subscriptions to subreddit X today?"
Apply domain shame-bans to toolbar framing.

Some evil people are using the toolbar URLs to spam their links and then
framebusting to ditch the toolbar. This patch makes it so that if the
framed URL is on a shame-banned domain, the framing will abort and
return a 404.
traffic: Change top_last_month to sort by pageviews.

We generally use total pageviews more than uniques, so this is a more
meaningful metric to sort by.
Don't count automatic subreddits against subscription limits.

When getting a list of user subreddits, we'll check if they're
subscribed to any automatic subreddits and remove them from the mix
before doing the random selection. Then they'll be added back in. This
is important to ensure that maintenance announcements aren't missed by
users because the announcement wasn't in their subset of subscriptions.

On reddit.com the automatic subreddits are /r/blog and /r/announcements.
Allow anyone to fetch a subreddit's flair.
Raise exception on failure in make_daily_promotions

Makes get_schedule return a list of errored campaigns instead of just logging
them so they can be handled by the calling function.

Updates make_daily_promotions to first launch as many campaigns as possible,
then raise an exception with a list of errors at the end. The exception is
useful for triggering alerts.

See https://github.com/reddit/reddit-public/issues/570
Prevent AttributeError when calling date() in edit_campaign

There have been some None object has no date() attribute errors in the logs.
Not sure how one of start/end are being set to None and not the other, but
went ahead and moved the call to date() inside the conditional that checks
whether both exist to make sure the correct error message gets set.
Fix cc date validation error

This check was raising a value error if run on the 31st against an expiration
date in a month that only had 30 days. Now we pick the 1st day of the month,
which is guaranteed to exist.

Also uses the correct timezone.
Include campaign id in duplicate bid error handling

Uses both transaction id and campaign id to uniquely identify a bid. This
fixes a bug where querying for one bid in some cases caused a multiple rows
returned exception - a side effect of the campaign migration, which left both
old and new bids in the db.

This change also includes the campaign id when attempting to recreate a lost
bid record because... bid records are supposed to have campaign ids. I'm not
sure what was happening with the bid records that didn't.
Don't set results to 0 when cleaning up a query
Update comment by cleaning code