decode the error messages from libarchive
minor fix in `check_archive()`
no need to pass the length, one can use `len(data)` instead
add a test for `custom_writer()`
explicitely call `write_close()` so that it shows up in tracebacks
fix segfault

> Note: Make sure you keep references to CFUNCTYPE() objects as long as they are used from C code. ctypes doesn’t, and if you don’t, they may be garbage collected, crashing your program when a callback is made.

https://docs.python.org/2/library/ctypes.html#callback-functions
add test for error string decoding