Detect paths with illegal bridging offers
Set version to 0.25.2-rc1
Tighten up some serialization checks
Restore checkpointed ledger under all paths in PathFind.
Use swapWith to save CPU; edit comment.
In JSON, output unprintable currency codes as hex
Set version to 0.25.2-rc2
Impose a local limit on path lengths
Find 'sabfd' paths
This permits USD/GW1 to be bridged to USD/GW2 by BTC/GW3 or
USD/GW1 to be bridged to BTC/GW2 by CNY/GW3. See RIPD-335.
Set version to 0.25.2
Pass and use time_point in DecayingSample ctor (RIPD-359)
Switches a number of places in Resource::Logic to use abstract_clock::now()
which returns a time_point.  Unfortunately Resource::Logic tracks time
locally also, but with ints, not time_point.  So Resource::Logic uses a
delicate mix of abstract_clock::now() and abstract_clock::elapsed() with
this commit.  That inconsistency could be addressed in a second commit.
Serialization code improvements:
* Add generics to eliminate duplicate code in STHash
* Use generics in Serializer and callers
Fix VSProject item sorting:
* Use object type in the sort key
* Call _key recursively over containers
* Prevent passing of iterators to xsorted
* Fix VSProject generator with new sorting
Simplify initialization of Pathfinder using C++11 constructs.
Rate-limit SSL client renegotiation (RIPD-360)
Fix VSProject item sorting (again)

Conflicts:
	src/beast/site_scons/site_tools/VSProject.py
Fix version to say 'rippled'
Support stream composition of testcase names
Use Books in Ledger.
Fix static_initializer: …
* Prevents double construction, invalid access
* Unit test works on MSVC and non MSVC