introduce resource object/interface

this replaces sourcefetcher, outputter, and checker with a single package, now
permitting reuse of the container between API calls. this will later allow
long-polling, and generally cleans up the code a bit.