Replaced my newton solver with scipy.optimise.newton_krylov

Almost certainly more robust and flexible, probably faster too...
Clean up and debugging

Simplify residual functions, just use functools.partial to create partially
evaluated functions instead of having a generator.

Add an alternative spherical residual calculation for comparison.

Comment out spherical_llg test, can't get it to work.

Add some functions for manipulating the arrays that ode solvers output.
Rearrange file structure as needed for pypi

As described here http://guide.python-distribute.org/creation.html
Fixed import paths
Add relative error function
Refactor ode integrator to combine all integrators

Also add an optional argument to provide a function to execute on the
results after each timestep.

Residuals are now calculated in their own functions and functools.partial
is used to fill in the known values before passing to the Newton solver.
Ignore experiments folder
Added function to convert times into timestep sizes
Added adaptivity framework with specific implementation for BDF2

Including working self test.

Uses error estimator taken from oomph-lib.