Issue #51: discriminacion y administracion de categorias de productos.
- CategoryTrytonService.import_from_external: lee categorias asociadas a
productos salables, hace upsert por external_id (fallback nombre),
preserva description/alternative_name/active, reporta
checked/created/updated/untouched/failed
- upsert_category compartido y reutilizado por ProductTrytonService