Ledger test

https://ripplelabs.atlassian.net/browse/RIPD-432

@JoelKatz @vinniefalco 

This is still somewhat of a WIP, but it is time to get the bulk of it onto develop, get some experience with it, and see where we go from there.
Quibble: Why does this have to be a `shared_ptr`?  It's only used once below, and as a reference - why not just `STTx tx(*sopTrans);` (also applies to all the duplicated code).