Add coverage target.
Cleanup error handling.
Add regression tests for bytea.
Remove dead encoding code, and test encoding conversions.
Improve test coverage.
Escape strings when dealing with arrays and dicts.

As mentioned in issue #1509, comas were not escaped properly in array of
strings.
This is also the case with array-delimiter character ('{' and '}') and hstore
key value separator.

In the case of mappings, we escape the key and value (by surrounding them with
double quotes) unconditionnaly.

For sequences, if the postgresql column type is not an array, then the result is
equivalent to str([some, list, with, elements]).

If the postgresql column type is an array, then the result is properly escaped.
This should also work with multidimensional arrays.
Test even more edge cases.