Injectable expressions using default values for kwargs

Decorated injectable functions can specify default values for
arguments which are interpreted as injectable expressions.
Currently expressions representing the names of injectables and
table columns are supported.

This adds flexibility. For example, a function can use a different
data source by only changing the default function arguments.
Functions can also be injected individual table columns.
Injectable names are no longer restricted to valid variable names.
Refer to injected things as registered variables

Update docstrings and rename _collect_injectables to
_collect_variables.
Fix _tables_used in sim to include tables of columns

Currently duplicates expression parsing by _collect_variables.
We can modularize parsing later when expressions are more complex.
Fix _tables_used in sim to convert tuple to list
Add more tests for simulation framework
Add test to simulation framework for variable name with space
Add test to sim framework for adding column expressions to table
Update docs for registered variable expressions
Add python markup to simulation docs
Fix and revise docs for simulation framework
Move and edit variable expressions section

After some thought I decided it would be worthwhile to have
a section dedicated to describing dependency injection since
that's rather central to the simulation framework.
I put it at the end just before the API section.
The content is an edited/expanded version of that first written
by @daradib.
Refer to dependency injection in sim function docstrings
Add to dependency injection section of docs
Revise sim docs and docstrings for variable expressions

Thanks to @jiffyclub for comments and suggestions.
Merge branch 'injectable-expressions'

Registered variable expressions for argument matching.

* injectable-expressions:
  Revise sim docs and docstrings for variable expressions
  Add to dependency injection section of docs
  Refer to dependency injection in sim function docstrings
  Move and edit variable expressions section
  Fix and revise docs for simulation framework
  Add python markup to simulation docs
  Update docs for registered variable expressions
  Add test to sim framework for adding column expressions to table
  Add test to simulation framework for variable name with space
  Add more tests for simulation framework
  Fix _tables_used in sim to convert tuple to list
  Fix _tables_used in sim to include tables of columns
  Refer to injected things as registered variables
  Injectable expressions using default values for kwargs