Two major enhancements and other important changes

Please review my changes related to below enhancements, also let me know, if you have any comments or questions..

1) Change the way the backup downloads attachments

Currently, the app asks for the attachment details during the sheet download process.  These details include a link to Amazon S3 that is only valid for 2 minutes. This S3 URL gets thrown onto a worker pool and if the download worker doesn't execute within the 2 minute window, it will fail to download the file.  To address this, the request to get the S3 URL should occur as part of the worker process itself, increasing the likelihood that the 2-minute window will be met.

2) Graceful error handling
Add a config flag to config properties to indicate whether to continue on error, or to halt the process upon the first error.  In the former case, produce a detailed error log showing what was skipped.  The error log should have sufficient information such that the user can determine who the sheet belongs to, what the sheet name is, the name of the attachment (if it was an attachment that failed), etc., so that manual steps can be taken to recover the item.

Apart from these i have enhanced the 
- Logging mechanism by using java.util logging with custom "LoggingFormatter".
- Moved loading and reading property values to PropertyUtil class for easy and efficient access.