Fix no compression with TIFF.write_image()

If compression was unspecified, it would be None, which is different from COMPRESSION_NONE,
and lead to use WriteEncodedStrip(), for writing the strips. Seemed to work anyway, but it's
probably better to use the right function.
Fix TIFF.SetField() with empty strings segfaulting

Writing a field with "" (empty string) would segfault, because of wrong conversion to ctypes type.
Strings were detected as iterable, which would cause conversion to ctypes type with c_char_p(*value).
For normal strings, it gives the same behaviour as c_char_p(value), but c_char_p(*"") returns a NULL
pointer, which later on would cause a segfault in libtiff.

Also fixes conversion of pointer types (which never worked).
It also fixes GetField("COLORMAP") failing when no such field exists.
Finally, avoid import numpy twice, which also seemed to cause segfaults from time to time.