Check point with base implementation of client.

Instead of implementing every minor interface of sub-objects, I'm
trying to hoist as much logic upward as possible and expose it
through the client.
Intermediate commit

Writing algorithm to check if all files have been downloaded,
and if not, to download any remaining files, by simply providing
a local directoy path and an s3 bucket + path + prefix.