Fixes for PyMimeData coercion

This PR adds some better handling of PyMimeData coercion:

* subclasses of PyMimeData get a basic coerce which copies local instance references
* lists which are coerced get inspected for PyMimeData instances, which get the local instance extracted
* whether or not to pickle is tracked

In addition, rather than silently failing if we can't pickle an object, PyMimeData will instead return a non-pickled version of the object, and warn that pickling failed.