Refactor: Package knows part objects
Refactor: Package knows part objects

Parts register themselves with a given package on creation.
This allows the package to ask the parts to marshal themselves,
compared to manually calling `save` on each part.

Part handling in package still is a bit ugly as it has to handle
them differently depending on whether it knows them as an object,
a string or hasn't loaded their contents at all.

nuvyu/ruby-pptx