add RelationshipCollection.rels_of_reltype()

* (/) document Relationship-related interface
* (/) add Test_RelationshipCollection.test_rels_of_reltype_return_value()
* (/) add _RelationshipCollection.rels_of_reltype()
draft Part protocol and interfaces page
refactor Part to own partname

* (/) rename Part._partname to Part.partname
* (/) test BasePart.partname setter
* (/) add @partname.setter
* (/) remove Part._collection attribute
implement Observer to notify partname change

* (/) implement Observable class
* (/) test BasePart observable on partname
* (/) test RelationshipCollection reorders on partname change
implement Presentation._blob rewrites sldId list

* (/) test Presentation._blob rewrites sldId list
* (/) add Test Data Builders for Part and RelationshipCollection
develop Slide._clone_layout_placeholders()

why: prerequisite for SlideCollection.add_slide()

* (/) draft ct_slide.rst
* (/) analysis: minimal slide XML
* (/) test Slide._element is minimal xml on construction
* (/) conduct and document slideLayout-to-new-slide placeholders
experiment
* (/) test Placeholder decorator values
* (/) test ShapeCollection.placeholders
* (/) factor _slideLayout1() out to test module function
* (/) factor _slideLayout1_shapes() out to test module function
* (/) test BaseSlide._next_id
* (/) test ShapeCollection.__next_ph_name(ph_type, id, orient)
* (/) test ShapeCollection._clone_layout_placeholder() values correct
* (/) test Slide._clone_layout_placeholders(slidelayout)
complete SlideCollection.add_slide()

* (/) test Slide() adds slide->slidelayout relationship
* (/) refactor test_presentation to import classes rather than specify
      module in constructor call
* (/) test SlideCollection.add_slide adds prs->slide relationship
* (/) test SlideCollection.add_slide sets new slide partname
implement basic text-related API

* (/) fix Presentation._blob finding right spot to insert sldIdLst
* (/) test Paragraph.clear() removes all runs
* (/) add Paragraph.text write-only property
* (/) test TextFrame.text produces single run para containing value
* (/) test BaseShape.text write-only property
* (/) test BaseShape.text raises on shape with no text frame
implement ShapeCollection.add_picture()

* (/) test Package tracks instances
* (/) test Package instance refs garbage collected
* (/) test Package.containing(part) returns correct package
* (/) test Image() construction from file
* (/) test Image.__image_file_content_time()
* (/) test Package.open() gathers image parts
* (/) test ImageCollection.add_image() returns matching image if the
      image has been placed before
* (/) test ImageCollection.add_image() adds new image if none matching
* (/) test BasePart._add_relationship() adds specified relationship
* (/) add_shape() calculates 100% width and height based on px size
* (/) develop Length value classes (Inches, Cm, Mm, Px, Emu)