Move the reporting of finished tasks to separate Callbacks class
Add an explicit API entrypoint

api.py has convencience wrappers for call, copy and slurp. These
are easy-to-use programmatic versions of pssh, pscp and pslurp.
Record default user for non-API / legacy API use
test: Teardown code was never called
Test cases for the API

Also API fixes to minor bugs found while running tests