Initial port to cffi

This passes validation but fails because the MagickWand type definition
is opaque
Fix CFFI declarations

Thanks to @lazka who pointed out that the docs on
http://www.graphicsmagick.org/wand/magick_wand.html#newmagickwand don't
match the source at
http://graphicsmagick.sourcearchive.com/documentation/1.3.8-1/magick__wand_8c-source.html

* Refactored error handling code into basic decorators