Add support for copy/paste

When using collective.diversion, copy/pasting or exporting a diverted item that hasn't been repersisted causes a PickleError. This is due to ZODB.ExportImport explicitly using cPickle rather than its _reader.

This feature branch also patches the reference to cPickle.Unpickler in that file to be a subclass of pickle.Unpickler that is aware of the diversion rules.