Only require boto if we'll need it

If we're running in --local-only mode, then a missing boto library is not really
a problem.
Make aws_key and aws_secret_key optional.
Fix a bug where records could be double-processed

If the download cache dir was used as the local data dir, then any files found
both remotely and locally would be processed twice. We now dedupe remote files
before partitioning.
Merge branch 'mapreduce_without_aws_credentials'