Clean up script

Address #10. Tests pass.

Clean up script by using new Variables and Equations classes. Change
necessary to remove a lot of the details from the script to make it
easier to concentrate on the iteration flow. Using the Variables and
Equations class removes a lot of the setup code leaving only the
iteration loops in the script.

 * move import tables to top of imports in tools.py

 * move DistanceVariableNonUniform to variables.py

 * remove Parameters class

 * replace MeshBuilder class with build_mesh function

 * move calc_current function into Variables class

 * move all parameters into JSON file

 * move variable creation to Variables class

 * move equation creation to Equations class

 * move other subsections of script to Equations class
Move `write_data` to be method of `Variables`

Address #10. Tests pass.

`write_data` mostly involves `Variables` attributes so makes sense for
it to be a method of `Variables`.

 * remove `calc_current` function which is not used
Cleaned print statements from flow loop

Address #10. Tests pass.

The print statements didn't produce a clean output and they were
cluttering the flow loop. Moved all the printing to one function. Use
prettyprint to print clean tables of the control variables and
residuals.

 * add `AdvectionEquation` class

 * make `Equations.sweep` more compact

 * create `print_data` function

 * remove print statements from script
Move telcom_script.py to annular.py

Address #10. Tests pass.

Moving telcom_script.py back to be called annular.py as the constant
current formulation has not been added yet. The only changes are to
clean up the script. Also annular.py is now tested.
Remove defunt telcom_script.py
Create new script for constant current

Address #10
Remove accidentally created constant_current.py

Remove constant_current.py, which was accidentally created on master.
Create constant_current.py

Script for starting the constant current formulation
Implement equation for applied potential

Address #10

Applied potential variables should be changed by an equation rather
than Variable update so the updates are controlled as part of the
sweep. The updates could occur multiple times in a sweep otherwise.

The equation building methods in `Equations` have been moved to
classes as this is more OO.

 * moved Equations' class methods into separate Equation classes

 * starting to implement AppliedPotentialEquation

 * `print_data` uses `1.2e` formatting for floats

 * `Variables` builds intermediate variables required by the
   `AppliedPotentialEquation`
Use temp file for JSON in tests.

Address #10

Tests change JSON on the fly negating the need for separate test JSON
file.

 * implement EquationsConstantCurrent class

 * use OrderedDict for recording residuals

 * tests create temporary JSON file and change `sys.argv` before
   importing the script
Constant current is fully implemented

Fix #10. Tests pass.

Constant current is fully implemented. The size of the correction to
the `appliedPotential` variables is limited to maintain stability.

Tests have been refactored in a major way. A context manager is used
to setup and teardown to enable `import annular` to run like a
script. Unfortunately, further refactoring of the code will make this
unnecessary.

 * constant current now works

 * the size of the correction to `appliedPotential` is limited to
   preserve stability

 * create `ConstantCurrentEquations`

 * add self._requires to `AppliedPotentialVariable`

 * add `constant_current` parameter

 * add test for constant current

 * major refactor of test cases
Merge branch 'issue10'

Fix #10