Refactored the add/edit/delete attributes admin

- Code is now much more DRY.
- Always provide feedback for errors:
  - Error shown if attribute name, slug or type is left empty.
  - Error shown if attribute slug already exists.
- New error check added for attribute slug which should not be [a reserved term](http://codex.wordpress.org/Function_Reference/register_taxonomy#Reserved_Terms).
Merge pull request #2139 from GeertDD/admin_attributes

Refactored the add/edit/delete attributes admin
Readme for #2139
Spelling fix for "visibilty"
Use post_class() in product loop
Add CSS class to featured products and products on sale
Fixed fatal error in paypal gateway

This line should contain use $response instead of the not existing $result.

The error only occurs when debugging is enabled and the communication with Paypal API failed for some reason. But in this case, it results in a fatal php error: Call to a member function get_error_message() on a non-object
Merge pull request #2149 from GeertDD/post_class

Use post_class() in product loop
Merge pull request #2146 from GeertDD/visibilty

Spelling fix for "visibilty"
Merge pull request #2151 from welovewordpress/patch-1

Fixed fatal error in paypal gateway
Ensure gateway class is loaded up when saving. Closes #2154.
kses