Large ripple calc refactoring.

Sorry for the large number of commits, but it was a lot more before I rebased to make a more coherent picture.

The summary is that all the huge parameter lists have vanished as well as lot of duplicated code.

RippleCalc's details are entirely hidden from the world so changing them only recompiles a single file.  All this code is in a new subdirectory.

The names have been rationalized, and I reorganized the flow of control and carefully, carefully made some tweaks to the (super delicate) error handling code. 

And, well, there's a lot of stuff.  Take a look!

Unfortunately, still not the final changelist in this series, but hopefully it goes a long way...