Start of io mapping
Merge branch 'feature/tap-params' into feature/io-mapping
merge
Update clojure.tools.cli
big rewrite, several improvements

- rewrote cli part so part are more loosely coupled
- output mapping allows to indicate the nodes that should be sunk somewhere
- sink and sources can now be distinguished because of
output mapping
Implement restartable checkpointing by serializing steps
Fix arguments for hfs-textline
Use output-mapping to determine sink or source (idea in progress)
simplify fnk macros
better name for sink step
Only forward arguments that are in the input-schema
use get-out-fields accessor instead of keyword lookup
Remove tmp directories before starting step
Add transact function, a function that can wrap a nodes before and after a graph. 

Useful for cleanup steps like remove a Pail snapshot
wip
fix checkpoint, update tests, cleanup macros and add serial mode
Fixing serialising on hdfs
make cleaning up checkpoint dir optional
Add job callbacks
Make sink and source options info available again