Add ability to define generic injectable values in simulations.
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.
Merge pull request #72 from synthicity/injectables

Injectables and table sources

Injectables are basically naked values (numbers, strings, anything) that are injected into table/model/column functions just as tables are now. They are injected with no wrapping. If you make a function injectable, then by default the function is evaluated (with its own injection) and its return value injected, but you can turn that off so the function itself is injected.

Table sources are functions that return DataFrames, but the registered function is replaced by the returned DataFrame the first time the function is called (so the function is only ever called once).