Added Ledger, LedgerView and demo

Ported Ledger to transact, works very nearly the same way, but without
special LedgerVar.
Ported Swing LedgerView, this avoids the need for specific change types
by just inspecting the Ledger in a Box[Ledger] and deriving the
TableModel changes from that.
Removed TSwingView - since all views were using SwingView update
mechanism to actually schedule swing changes (after reading Box state)
this was unnecessary, and just puts more work on the EDT.
Added shapeless dependency, not currently used but might make a nice
way to do a less TableModel-style version of Ledger, for use with a
custom control, perhaps in JavaFX (where we will need a custom control
since the current tables are not really suitable except for simple
cases that look like ListLedger, with no support for composite tables
etc.).