Minor Python3 fix.
Implement symbolic cell volume = |J|*reference volume for affine cells.

Throwing error for non-affine, no plan for how to deal with that.
Implement facet_area in change_to_reference based on facet jacobian
determinant.
Change product to use a for loop instead of reduce. Python3 removes reduce, and the new version is actually faster for small products.
Fix uses of max, python3 cannot compare int and None.
Fix another use of max.
Minor change in degree estimation using max on tuples.

I don't think the degree tuples in here are properly working.
May have to remove it and await a better solution.
Hack to make type-aware sorting work in py3.
Various fixes for reference cell geometry on intervals.

In particular implemented facet normal for manifold intervals,
changed integral scaling for interval facets (vertices) to 1,
and added early errors when trying to create reference geometry
types on intervals when that results in 0-dimensional nonsense.
fix test.