Add a create or retrieve method for categories
Improve Item.add_category to check if the category exists rather than catching the exception