Make tax code flexible

Beginnings of the process of converting the transfer class into a
collection of related classes. This way the tax code will be able to be
much more variable. Mostly just a branch to save progress.