don't check if default phi0 is better

New guessing strategy removes the need for this, so we get a 30% speedup
Pointer arithmetic for inner loop

1.2-1.5 speedup, could be worse
Change caching strategy again

Previous method needed a minimum of two calls to SCFsolve to generate a
profile. Got it down to one by fudging the parameter-field map. Another
20 - 50% speedup.
Many changes, check default phi0 less

Some comments, some style, some error handling
Base short circuit on absolute value of fields

can't believe i missed this bug for so long...
Error handling updates

More robust to edge cases
New idea for lattice shrinking

Shrinking is relatively unsafe compared to growing, so only do it once
at the end.  I think the old way was causing some endless loops.
Remove rounding from caching logic

Not sure if it was really harmful, but we never hit the cache anyways,
so why not simplify the code?
Cache SZdist too.

Often this function is called with the same parameters.

SZdist cache fix

some edge cases were missing the cache
Revise shrinking math

simpler and better
bugfix

whoopsie again!
Cacheing in ETP class is redundant now.
use np interp extrapolation
Short circuit callback needs less information
Use uniform chain special case more often
Squeeze out lattice artifact.
Style changes
polymer tests
dict fallbacks for python2.6 compatibility
Merge pull request #61 from richardsheridan/idea-polymer-updates

pull polymer updates before release 0.7.7