Implement the basis upts method in BaseBasis.
Change the unit test to use DG rather than SD correction functions.
Remove the (unused) dims property of the basis.
Add basis methods for going nspts <=> nsptsorder.

Each basis now defines a polynomial which relates the shape
point order to the total number of shape points for the element
at this order.  The two new (base) methods evaluate/solve this
polynomial in order to go between the two.
Clean up some of the flux-point normal code.
Clean up some of the flux point projection code.
Further refine how bases specify flux-point normal vectors.
Specify the desired flux-points in the unit test.
Exploit the fact that np.vstack accepts generators.
Add methods for getting quad points/weights as NumPy arrays.
Rewrite the bases in terms of numerical primitives.

All relevant calculations are now performed numerically (as
opposed to symbolically) using mpmath.  Nodal bases are
constructed through numerical inversion of the generalised
Vandermonde matrix.  Correction function divergences are now
always computed through the integral approach previously
employed in tris and tets.

These changes both improve the startup time of PyFR and permit
the use of non-tensor product solution points in quads and hexes.
A consequence of this change is that some (invalid) configuration
files which do not explicitly specify the desired set of flux
points will cease to function.

Finally, support for the VCJH schemes in tensor-product elements
has been dropped.  (It is not immediately clear how these can be
recovered via the integral formulation outlined above.)
Merge branch 'feature/bases' into develop.