Tidied up code (using pychecker etc.)

Add division from "__future__" to all modules. Much more reliable because /
is now always floating point division rather than trying to guess whether
or not to round results down (which could ruin numerical calculations).
Rewrote spherical polars residual

I had the calculations for energy derivatives wrong due to weirdness of
spherical polars. Still not working as expected though, so something is
probably wrong.
Added trapezoid rule, lte estimators and did some refactoring

Removed unnecessary passing around of dt values (they are implicitly passed
in the time values).

Added trapezoid rule.

Added lte error estimater functions and a test to check that the actual errors are
near this lte estimate for a simple case.