Add the ability to auto-save tables during simulations

By passing a file name and save interval to `sim.run` it will save
all the tables used by the running models to an HDF store every
X number of years. It doesn't save every registered table, rather it
saves only the tables that it detects are being injected to models
that are actually running. If models are using tables *not* via
injection those will not be saved.

If there's no year specified to run then the tables are just saved under
their names in HDF store. If there is a year the tables are saved under
keys like `'<year>/<table name>'`, e.g. `'2010/buildings'`.

Note that the HDF store is opened in "append" mode so if there is a
pre-existing store with the same name you can get results from multiple
model runs in the same file.