Add table_source decorator/add_table_source function

Wraps a function so that the function is called only once and the
DataFrame it returns replaces the function in the simulation registry.