Massive RippleCalc refactoring - the sequel.

* Extract all methods from RippleCal as free functions.
* Rename type names to use coherent English.
* Change boost::shared_ptr to std::shared_ptr.
* New CalcState class describes desired future interface.