Fix various deployment listener issues

1) Facets and category feeds could run twice (i.e. if deployed descriptor names were [ "ruleCategory", "ruleCategory", "ruleCategory" ]. It would run three times the category feed. 
2) When rules were changed, the synonym export would run too even when synonyms didn't change. 
3) If rules were deployed in a project with synonyms, the rule feed might not run. Example, deployment descriptors were [ "synonym", "rule" ]. The break on the final elseif would have prevented the rule feed to run as the synonym was first.