Fix bug #370  -  ListImporter doesn't work in Cairo
This fix includes some changes on the following files:
mptr_cairo_png.cpp: Modified behavior when constructed from a file that is not readable. The cairo_surface_t* is set to NULL and returns. Also if mapping fails it returns too.
listimporter.cpp .h: inclusion of the macros from Importer to make it consistent with the rest of importers
surface.cpp:  when cairo?surface?t*  status is not ok, destroy the surface and set the pointer to null. When attempting to map a null surface or already mapped surface print error message and return. Similar within unmapping a null surface or a surface not mapped.