refactor Category

* association with topic of definition should be "has_one"
* move callback bodies to separate methods (easier to test)
* simplify creation of category description topic