opc: add OpcPackage.after_unmarshal()

Overridden by pptx.package.Package.after_unmarshal(), but should have
this backup method on the base class.
test: refactor tests.shapes.test_table

* Most of tests.oxml.shapes.test_table are redundant now with xmlchemy
in place.
* ST_Coordinate now returns BaseLength object
test: factor out legacy unitdata
acpt: improve cosmetics in features.steps.table
shp: add BaseShape.has_chart

Base case to make the property accessible on any shape.
gfrm: add GraphicFrame.has_chart
shp: add BaseShape.has_table
gfrm: add GraphicFrame.has_table
tbl: improve cosmetics in shapes.table

* mv _tbl_elm _tbl
* make rows and columns lazyproperty
* reorder methods, setters directly following getters
* remove redundant validators
* remove bool() type conversions, let user get it right, avoid hiding a
problem
gfrm: add GraphicFrame.shape_type
tbl: chg Table._element from graphicFrame to tbl

Entails several important changes because Table is no longer a shape:

* ShapeTree.add_table() now returns a GraphicFrame object, and its
.table property must be used to retrieve the table object.
* All shape operations such as id, name, shape_type, position and size
all happen on the GraphicFrame object now, not the table object.
acpt: update sld-access-shapes for GraphicFrame

“table” and “chart” and “smart art” shapes accessed using Slide.shapes
should be GraphicFrame rather than Table, Chart, or SmartArt. The
latter are enclosed graphical objects, the GraphicFrame instance is
always the enclosing shape, having the id, name, size, and other common
shape properties.
acpt: add shp-access-chart.feature

Exercises Shape.has_chart and Shape.chart
cxml: add attribute namespace detection

So for example, an ‘r:id’ attribute causes an xmlns:r= namespace
declaration to be added to the element.
gfrm: add GraphicFrame.chart_part

* Entailed adding most of the ChartPart infrastructure such as
namespaces and class shells.
gfrm: add GraphicFrame.chart
cht: add ChartPart.chart
acpt: add cut-access-axes.feature

with scenarios for access category and value axis
cht: add Chart.category_axis

* Extended Chart constructor to take parent chart part, will need that
I’m sure.
cht: add Chart.value_axis