codes can mean other errors

We switched from matching errstr to codes, but codes are shared
between a few errors, so our guess about problem can be wrong.

Assume that in most cases guess is correct, but still publish
DB's error message.
Merge branch '4.0/fulltext-indexer-errors' into 4.0-trunk