get Image.raw_properties working with cffi
It doesn't live in Cython, Huzzah!
Suggestion: use @classmethod from_* for non-standard "constructors" like the standard library does.
This is a fairly common idiom now. I left the TODO note in since it's still debatable.
Support Python 3.4 pathlib objects not just strings when opening by filename.
Maybe want to add this to backports list setup.py instead of checking for it's existence, but it's not critical, so I like this solution.
Alternately use try/except NameError instead of global HAS_PATHLIB variable.
Multiple changes to help with colorspace manipulation.

Assuming that when colorspace is set, the user intended to transform the image to use that colorspace, not reinterpret the image with the new colorspace.

(alternately use a transform_colorspace method to transform w/ colorspace.__set__ just setting)
I couldn't get the agnostic metaclass hack to work, so I used the one from `future`
Adds a dependency on future w/o using all of futures real fanciness which I like, but upstream may not like it.
absolute_import is being imported from future, but we aren't using relative imports.

That seems silly to me.
Auto detect format from filename extension if format is set to 'auto'