[WIP] Ledger test experiments

Factor out TestContext …
* Use rich struct for TestAccount
* Make helpers return TXResult
  * implements bool() operator, for expect fun
  * has LedgerEntrySet, uncleared
  * has TER, applied members
  * has snapshot of ledger prior to application
* Use the new ripple::TestSuite with expectEquals
Using an actual STAmount, gives you free + / - etc operators, and ability to << stream, so we should kill off the `Amount`