Adding in the sync capability. closes #57 closes #53

I've added a sync type that wraps the upload functionality in a pre-check for the files existence.

Sync acts almost exactly like upload, in many cases sync is preferred over upload because it will not upload if the file exists (via pathname by default). You can pass a flag to verify a file, so that the inspection is not whether the file path already exists on s3, but if the file that exists at that path has the same md5 hash or not. If they do have the same md5 hash, the verify option will then look at the modified time to determine which file is newer. 
Sync will only upload if the file is newer and the hashes do not match, or the file doesn't exist at that path.

+ Adds verify option and Sync uploading.