One assertion per test

also update to use rspec "expect" syntax
Start using a builder for building a transaction

This is in preparation for parsing splits
Wired up transaction builder to call split builder
Factor out builder specific code into module
Set up split fields
Set category instead of memo when adding a split
SplitBuilder passes unexpected messages to parent
Distinguish different build steps

Only transaction builder should be the entry point to build, so that at
the end of the reading process the right build method is called.
Can parse splits!
Allow some bad transaction data

I don't know if it follows the spec or not, but in the case of a split
coming before other similar named fields (memo, category and amount) the
wrong builder would have been invoked.
Allow builder methods to have a prefix

This is to accommodate special split methods all starting with
set_split_attr, populating the attr on the object itself.