Refactor of transition models

I split out some transition models into two conceptual pieces:

- One piece is that which actually updates the primary input table,
  e.g. the households table. This is in a series of *Transition
  classes which includes some for simple growth rates, and tabulated
  growth rates and control totals.
- The other piece is a TransitionModel class that makes use of a given
  *Transition class and mostly handles the updating of linked tables.

Another big addition is the actual ability to have linked tables with
transition models. This handles, for example, having a "persons" table
that references the households table. The households table is what is
actually transitioned, but any rows in persons that reference a copied
or removed row in households also have to be copied and removed.
This is handled by passing a linked_tables dictionary to
TransitionModel.transition along with the primary data table and year.