'Output and count an error.  Suppress duplicate errors.'

def Error(self, text):

    if text:
        text = encoder.NarrowText(text, None)
        hash = hashlib.md5(text).hexdigest()
        if (not self._errors_shown.has_key(hash)):
            self._errors_shown[hash] = 1
            print ('[ERROR]    ' + text)
        else:
            self.Log(('(suppressed)    [ERROR]    ' + text), 3)
        self.num_errors = (self.num_errors + 1)
