Add in split support

This change adds in support for reading splits. Now each transaction has an array of splits, each with a category, memo and amount.

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.