Libzfs core cffi 731

Should give the general idea of the approach to #731.  The scope of this initial work should be limited to one or two functions - not wrapping the entire public API of `libzfs_core`.  Follow-up branches can incrementally build on this base.

This is lacking some packaging stuff - assume that `setup.py` and maybe the rpm spec file will change slightly to declare the new dependencies this represents.

As #731 says, the goal is to be able to send this upstream once it's meeting most or all of our current needs.  The code should be fairly isolated from the rest of Flocker.  There's a little bit of spill-over in setup.py that's difficult or impossible to avoid for now.  Once we're satisfied this is going to work and we want to push this upstream, those bits should be easy to untangle.

This also needs some buildbot work to get necessary extra dependencies in place.
Ought to be `TypeError`.