Knitr now propagates errors up to targets
Implement knitr rename-on-export, simplify dependency handling

Less magic, more predictability.  Now, all exported objects
must be explicitly listed, but they can be renamed.  Dealing with
batch export based on a fake dependency is probably a good idea
long-term, but might need more care than the magic way I was doing
it before.
Start reviving the chain interface
Re-enable chain targets

New interface is much simpler than before.  Simply list successive
commands in a list:

```
target:
  command:
    - f1()
    - f2(.)
    - f3(., other_dependency)
```

Similarly to other piping approaches, the dot stands for a the dependency
created in the previous step.  A bunch of rough edges here that will be
dealt with over the next few commits.
Tidy up chained targets a bit.
Remove internal checks used for argument quote testing

Was overcomplicated and confusing.  No changes to behaviour here though
(though the test suite at least) so should be fine.  This was only
used to test if arguments were quoted in commands, and that should be
much simpler than it was.
Checks and tests for use of dot arguments
Tests for chains that terminate in files/plots

Chains can't run into knitr targets because these must have
NULL rules.
Knitr targets may depend on files
Refactor cleanup target generation

Now checks that targets have no arguments, with new tests.
Testing for reserved target names