WebSearch: fix infinite synonym lookup cases

* Fixes infinite recursion when a knowledge base that is used for
  synonym lookup contains a cycle (A->B, B->A).  Adds 'ignore_synonyms'
  parameter to `search_unit()` in order to control which synonyms have
  already been translated and should consequently be ignored.
  (closes #804)

Reviewed-by: Tibor Simko <tibor.simko@cern.ch>