Prevent pgerrors from raising `UnicodeDecodeError`
Prevent pgerrors from raising `UnicodeDecodeError`

Use `tools.ustr` for error conversion to prevent `UnicodeDecodeError` when
converting errors which can be unicode in depending on data.

Example:
```python
from openerp.osv.orm import convert_pgerror_23505
from psycopg2 import IntegrityError

e = IntegrityError(
    'duplicate key value violates unique constraint '
    '"hr_job_name_company_uniq"\nDETAIL:  '
    'Key (name, company_id)=(Directrice comptabilit\xc3\xa9, 1) '
    'already exists.\n'
)

convert_pgerror_23505(None, [], None, e)

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 129: ordinal not in range(128)
```
vrenaville/ngo-addons-backport,gdgellatly/OCB1,grap/OCB,vrenaville/ngo-addons-backport,OpenPymeMx/OCB,camptocamp/ngo-addons-backport,grap/OCB,vrenaville/ngo-addons-backport,gdgellatly/OCB1,gdgellatly/OCB1,grap/OCB,camptocamp/ngo-addons-backport,vrenaville/ngo-addons-backport,vrenaville/ngo-addons-backport,gdgellatly/OCB1,grap/OCB,gdgellatly/OCB1,camptocamp/ngo-addons-backport,OpenPymeMx/OCB,camptocamp/ngo-addons-backport,gdgellatly/OCB1,grap/OCB,gdgellatly/OCB1,OpenPymeMx/OCB,vrenaville/ngo-addons-backport,OpenPymeMx/OCB,OpenPymeMx/OCB,OpenPymeMx/OCB,vrenaville/ngo-addons-backport,camptocamp/ngo-addons-backport,camptocamp/ngo-addons-backport,grap/OCB,grap/OCB,camptocamp/ngo-addons-backport,gdgellatly/OCB1,vrenaville/ngo-addons-backport,grap/OCB,OpenPymeMx/OCB,camptocamp/ngo-addons-backport,OpenPymeMx/OCB