Implement tool editing

Tool owners and Supermarket admins can now edit tools. If the current
user has permission to do so they will see a edit button on the tool
partial which will direct them to the edit tool form.
Style up server side validation errors

Server side validation errors aren't currently styled, so this makes
them a bit less ugly.
Create the cookbook deprecated email.
Create the cookbook deprecated notifier worker.

This loops through all users who should receive an email when a cookbook is
deprecated: the owner, collaborators and followers of a cookbook. Of course, it
is only those who opted into receiving emails.
Kick off the cookbook deprecated notifier

When the Cookbook#deprecate controller action is called, kick off an email
worker before redirecting.
Merge pull request #609 from opscode/edit-tool

Tool editing
Use the ICLA Signature record for names in table.

A user may or may not have a first and last name in their user record. The ICLA
Signature record for that user should _always_ have a first and last name (as
it is required). This updates the ICLA signers table to use the first and last
name from the signature record instead of the user record.
Merge pull request #613 from opscode/icla_signature_name_in_tables

Use the ICLA Signature record for names in table.
Make CookbookDeprecatedNotifier spec more explicit
Merge pull request #610 from opscode/cookbook_deprecation

Cookbook deprecation emails
Only display replacement cookbook info if present.

When viewing a deprecated cookbook and a deprecated cookbook partial, only
display the replacement cookbook if there is a replacement cookbook. For
example, if a cookbook is deprecated and then the replacement cookbook is
deleted, there could be a missing replacement.
Order users tools by name
Merge pull request #617 from opscode/order-users-tools

Order users tools by name
Add feature specs for various deprecated states

Whether deprecated w/ a replacement or when a replacement is deleted, the
content about the deprecation changes. This add specs about what is expected to
be displayed and what is not expected to be displayed.
Simplify the cookbook deprecated state view logic.
Merge pull request #616 from opscode/cookbook_deprecation

Only display replacement cookbook info if present.
Admins can accept requests to join their organization
Admins can decline requests to join their organization