This allows implementing `FromPyObject` for `Vec<T>`.
It also means that `obj.extract::<Cow<str>>()` won't be supported, but we
have `PyString::extract()` for that now.
* Add python3-sys to rust-cpython as an optional feature, and
make python27-sys also optional, but still the default
* Parametrise python27-sys/build.rs so that it is python
version independent, and clone it into python3-sys/build.rs.
Hopefully this can continue to be maintained as an identical
file.
* python27-sys and python3-sys gain features for explicitly
selecting a python version to link to. for python27-sys,
there's currently only python27; for python3-sys there's
python 3.4 and 3.5.
* explicitly tell travis to use nightlies (seems to have
started trying to use 1.0.0)
* fix ucs4 build broken by bb13ec
* add utf16 decoding to unicode.from_py_object for
narrow unicode builds
* change unicode narrow/wide cfg flag to be
Py_UNICODE_SIZE_4 not Py_UNICODE_WIDE, which doesn't
appear in sysconfig
* support framework builds on os x
* python27-sys exports compilation flags as cargo vars,
and rust-python resurrects them as cfg flags
* travis runs against local python27-sys
* rust-cpython depends on git python27-sys, because
the one on cargo is now incompatible with it (since bb13ec)
* in build.rs, call the python interpreter located by pkgconfig
and use sysconfig to determine the flags it was built with.
* pass these flags to the build via --cfg
* refactor existing references to features to refer to these
instead
replace PyPtr<'p, PyObject<'p>> with PyObject<'p>
Borrowed python pointers stay &PyObject<'p>.
Note: this means the internal representation of borrowed python pointers
changes from "*mut PyObject" to "&*mut PyObject".