Make cookbook url validation stricter.

Use validate_url for Cookbook URL validations to ensure that no nonsense is
present.
Implement most downloaded/followed filters

Implement most downloaded/followed filters from cookbooks index. Also
add top three most downloaded/followed to cookbooks directory.
Cookbook names must pass a whitelist format

In particular, they may only contain letters, numbers, dashes or
underscores. No spaces allowed.
Merge pull request #245 from opscode/sort_by_downloaded_followed

Implement most downloaded/followed filters
Merge pull request #243 from opscode/strict_url_validations

Make cookbook url validation stricter.
Add category class to the cookbook partial.

This colors the cookbook partial based on their category.
Merge pull request #250 from opscode/cookbook_category_color

Add category class to the cookbook partial.
Change recently_created to recently_added

Both recently_created and recently_added termniology was being used
throughout the application for ordering cookbooks. This changes it to
only be recently_added as that's consistent with the UI.
Merge pull request #249 from opscode/whitelist-cookbook-name-characters

Cookbook names must pass a whitelist format
Merge pull request #252 from opscode/recently_created_to_recently_added

Change recently_created to recently_added
Remove use of RJS

RJS while useful can lead to security issues if implemented incorrectly
and can become brittle and add unnecessary complexity to a simple
problem. I'd like to address the problem at hand (making the application
feel more reactive) at more of an application level using something like
Turbolinks or PJAX. For now though I think having these actions as full
page reloads is fine and removes a bit of complexity and risk.
Don't store location and authenticate for update

store_location_then_authenticate_user! is more useful for follow and
unfollow actions. We'll want to handle authentication/authorization for
the update action a bit differently once oc-id is in place. Also remove
the flash message from the update action as it doesn't add a ton of value.
Merge pull request #253 from opscode/no_rjs

No RJS
Add SMTP configuration to example .env
Add nokogiri as a dependency

Premailer requires nokogiri or hpricot as a dependency. It includes
neither as it lets the developer to decide which they prefer so we must
include one, I choose nokogiri.
Don't require raven

We should only require raven if a sentry url is provided which we're
doing in config/raven.rb. This removes it from being required by
bundler.
Merge pull request #254 from opscode/fix_premailer

Fix premailer
Replace Devise authentication with ChefOAuth2.

This replaces Devise (email/password) authentication with Omniauth
authentication. Supermarket uses oc-id, a Chef service, as the provider for
authentication. This means that for a user to sign up and/or sign in to
Supermarket they must create a Chef Server account, as they currently do. This
however removes the duplication of records and simplifies the communication
between the community site and Chef Server for authentication when sharing
cookbooks.

Notes:

* Remove omniauth-twitter because it is no longer being used
* Store chef_oauth2 public key on Users.
* Configures the cookbook
Merge pull request #178 from opscode/chef-id

Swap out email/pass auth (read as devise) for chef_oauth2 with developer as the provider
Create rake spec:all task to run the entire suite.

rake spec:all runs rspec then js specs then rubocop.