change the removal link text based on who's looking at it
Send out deletion notification emails when cookbooks are deleted
collaborators are removed properly again
Merge pull request #356 from opscode/cookbook-deletion-notification

Cookbook deletion notification
Merge pull request #358 from opscode/more-maintainer-fixes

More maintainer fixes
Rework and restyle the cookbook directory.

This refreshes the content of the cookbook directory by adding a three column
view of cookbook listings and a section of helpful content.

The cookbook directory introduces a new style for the Supermarket stats which is
also reflected on the welcome page.
Merge pull request #354 from opscode/cookbook_directory_update

Rework and restyle the cookbooks directory.
Update nokogiri to 1.6.2.1.
Merge pull request #360 from opscode/update_nokogiri

Update nokogiri to 1.6.2.1.
Index accounts by UID and Provider
Order cookbook versions semantically instead of by id
Merge pull request #359 from opscode/sort-versions-by-number

Sort versions by number
Merge pull request #361 from opscode/index-accounts-on-uid-and-provider

Index accounts by UID and Provider
Create a worker which refreshes OC-ID OAuth tokens

In order to refresh OC-ID OAuth tokens, we need to store the refresh
token provided by OC-ID. We also need to store the timestamp provided by
OC-ID which represents the time at which the given OAuth token will
expire. This commit adds a column to the accounts table to store the
former, and adds the code required to store both whenever a user
authenticates.
Schedule OC-ID OAuth token refreshes with Sidetiq

We're using the version on GitHub because the version published on
RubyGems has compatibility problems with Sidekiq 3.0.

We backfill Sidetiq jobs in an attempt to prevent gaps in token refresh
coverge due to deploys.

Ref: https://github.com/tobiassvn/sidetiq/issues/79
Send Sidekiq errors to Sentry
Index account OAuth expiration times
Expose the number of expired OAuth tokens through the API