Injectable expressions

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.

Should update external documentation and add tests.

As discussed in PR #124.
Thanks, fixed. For now we duplicate expression parsing by _collect_variables. We can modularize parsing later when expressions are more complex than just columns.