opc: refactor Describe_ContentTypeMap

* Extract fixture to clean main test and enable parameterized testing.
* Clean up ordering of objects in unitdata/rels.py
opc: refactor _ContentTypeMap.from_xml()

* extract ._add_default() and ._add_override()
opc: refactor it_matches_override_on_partname()

Extract fixture
opc: match Override on case-insensitive partname
opc: match Default on case-insensitive extension
opc: refactor Describe_ContentTypesItem

to integrate with oxml elements and test produced XML
opc: make _ContentTypesItem case-ins on ext

* A partname with a capitalized extension (like .PNG) shall match an
existing Default element having the same extension in lower-case.
* Extension value shall always be lowercase, regardless of the case of
the partname extension. e.g. '/part/name.JPG' causes '<Default
Extension="jpg" …>' to be written.
opc: refactor DescribePackageWriter

use proper mock fixtures having autospecs for safety
opc: refactor _ContentTypesItem to instantiate

Keep defaults and overrides as instance variables and change methods
from static to instance methods. It's still a one-shot object, but the
call structure is cleaner without having to pass defaults and overrides
around everywhere.
opc: refactor _ContentTypesItem interface

* change xml_for() to from_parts() constructor and return instance
instead of XML stream
* bring .blob property into _ContentTypesItem to return XML stream
opc: factor leading period out of PackURI.ext
acpt: add num-get-numbering-part.feature
num: add Document.numbering_part
num: add NumberingPart
num: add NumberingPart.numbering_definitions
num: add _NumberingDefinitions.__len__()
num: add numbering oxml classes
acpt: add sty-get-styles-part.feature
style: add Document.styles_part
style: add StylesPart