Fix up factory function `item_tags()`

Make function return a list of Tag objects, not a list of Tag IDs. Accordingly,
update the unit tests for this function, and change the one usage of this
function to compensate for the change.
Add class CategoryFactory and helper function