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.
I think we need to parse column names from column specs here. E.g. turn `'buildings.residential_units'` into `'buildings'` so the buildings table gets included here. We'll also need to filter duplicates after doing that.