Add split handling

In order to do this this change moves the parsing to use a builder
pattern. This is so when we get to the splits the
Qif::Reader.read_transaction method can transparently just call
add_split without having to keep track of whether it should start a new
split or not. It also means we can encapsulate the building process and
perform any special handling in the builder if we so choose (e.g.
addresses can have multiple lines, but it doesn't make sense for amounts
or categories to have multiple lines).

Because we now have builders, it made sense to remove
Qif::Transaction.read. It shouldn't be the responsibility of the
transaction to do reading or building, not now we have things that have
encapsulated the responsibilities elsewhere.