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