hexagonal rails spike: refactor to repository

topics/update
* use repository for data access
* move success / failure to methods
hexagonal rails spike: refactor controller logic to UseCase

* WIP: need to factor out params
hexagonal rails spike: refactor out params argument
hexagonal rails spike: refactor setting title and archetype

* extract method: set_topic_title
* extract method: set_topic_archetype
hexagonal rails spike: refactor current_user out of use_case

* remove L.of.D violation
hexagonal rails spike: refactor Topic#change_category

* removed method
* new method UseCases::Topics::Update#handle_category_changes
* still to do refactor Topic#changed_to_category