Harden RippleCalc against dangling references (RIPD-500)

Intentionally including 2 independent commits:
* Wrap RippleCalc into a single function.
* Add enable_if_lvalue to beast library

I ended up rewroting `RippleCalc` work to be called via a single function, eliminating the issues with passing rvalues to the constructor, so the `enable_if_lvalue` check is not necessary. (The `RippleCalc` class still exists, but with a private constructor, and no path finding logic was changed.) However, because `enable_if_lvalue` will be useful next time we encounter a similar issue (or have any doubts), it is still available in the beast library.

ach!  Yet another "human" thingie that should be called "to_string".  I already did a bunch of these...  (Just a comment, nothing to do...)