New `ExtemeFill2DMesh` class

Address #16

If the mesh is changed from an annular representation to a via, the
`build_mesh` raises an exception. The mesh build needs to be fixed so
that it works for annular and via shapes. As a precursor to this the
mesh functions were refactored into a class to make future subclassing
easier.

 * include sumatra setup instructions in README.md

 * `import scipy` and `import scipy.optimize` as this stopped working

 * move mesh building functions to one ExtremeFill2DMesh class
Fix `ExtemeFill2DMesh` for via meshes

Address #16

The `ExtemeFill2DMesh` has been modified to allow via meshes
corresponding to `rinner = 0`. The mesh inner padding is modified to
be the minimum of "rinner - 0" or the padding depth.

 * implemented a test case with rinner = 0
Fix `ExtremeFill2DMesh` docstrings

Address #16

Expand docstrings in mesh class
Clean up the `ExtremeFill2DMesh` docs

Address #16