clean up the iterator api

more cleanup, splitter is working better now
writers are expected to record errors, but
neverthrow them
improve logging when finished logging

all writers print aggregate stats when done by default
split writer does not since it delegates this to other
writers that do log
add getHeader method to Record

should allow typing as well
add sessionFactory to record for EntityIteratorWriter
add cli skeleton
add list to cli commands
Merge branch 'metridoc-cli' of https://github.com/metridoc/metridoc-job-core into metridoc-cli