docs: fix screenshot layout anomaly

CSS on RTD.org must be different or something because screenshot on
docs/index.rst was showing up teeny-tiny. Add some column width by
adding width to left column of table the screenshot appears in.
acpt: fix py33 behave error on helpers import

Also, removed Pillow dependency for tox environments.
enum: transplant docx.enum.base module

Transplanted from python-pptx, with some changes to fix Python 3.3
incompatibilities.

Enables full-featured enumerations to be defined declaratively.
Features include setter value validation, str() value elaborated with
symbolic name of value, alias names for an enumeration, mapping to and
from XML enumeration (ST_*) values, and auto generation of enumeration
documentation page, in addition to the base symbolic reference to an
enumeration value.
enum: convert WD_UNDERLINE to XmlEnumeration
run: convert CT_Underline.val getter to from_xml()

The new XmlEnumeration base class provides .from_xml() to encapsulate
the mapping of XML attribute values to enumeration values, eliminating
the need to place it in the oxml and repeat it in both directions, one
for each of the getter and the setter.

The predicate in the Run.underline getter unit test needs to be on 'is'
rather than '==' in order to distinguish a `True` value from a 1 value
and likewise for `False` vs. 0.

For now the specialized mappings between WD_UNDERLINE.SINGLE and True
and between WD_UNDERLINE.NONE and False are provided in the oxml
getter and setter directly. Later it might make sense to add a mechanism
to XmlEnumeration to allow adding get and set overrides/aliases, let's
see how it goes and whether that happens often enough to warrant adding
special-case functionality to XmlEnumeration.
run: convert CT_Underline.val setter to to_xml()
run: add validator to Run.underline setter
docs: add docs for WD_UNDERLINE enumeration
oxml: extract nsmap to docx.oxml.ns
oxml: extract parser to docx.oxml

register_custom_element_class() needs to go with to avoid a circular
import.
oxml: extract NamespacePrefixedTag to docx.oxml.ns

And added unit tests for NamespacePrefixedTag
oxml: extract nsdecls() to docx.oxml.ns
oxml: extract nspfxmap() to docx.oxml.ns

Changes to OxmlElement were just to satisfy flake8, although it’s
probably a little bit better style anyway.
oxml: extract qn() to docx.oxml.ns
oxml: extract parse_xml() to pptx.oxml.__init__

Was `oxml_fromstring()`. Also renamed separate function of same name in
pptx.opc.oxml having non-intersecting scope.
oxml: remove dead _SubElement()
oxml: extract OxmlElement() to pptx.oxml
oxml: extract XmlString to oxml.xmlchemy

serialize_for_reading() had to go at the same time to avoid a circular
import dependency.
oxml: add unit tests for serialize_for_reading()
oxml: add unit tests for oxml_parser