sync application and tracking logs to s3

Uploads log paths to S3 every hour and on shutdown.

Configuration:
```
# Rotate logs to S3
# Only for when edX is running in AWS since it organizes
# logs by security group.
# !! The buckets defined below MUST exist prior to enabling !!
# this feature and the instance IAM role must have write permissions
# to the buckets
COMMON_S3_LOGS: false
# If there are any issues with the s3 sync an error
# log will be sent to the following address.
# This relies on your server being able to send mail
COMMON_S3_LOGS_NOTIFY_MAIL: dummy@example.com
# Separate buckets for tracking logs and everything else
# You should be overriding the environment and deployment vars
COMMON_S3_LOG_PATHS:
  - bucket: "{{ COMMON_ENVIRONMENT }}-{{ COMMON_DEPLOYMENT }}-app-logs"
    paths:
    # globs are ok, do not use brace expansion
    # everything except tracking logs
    - "{{ COMMON_LOG_DIR }}/!(*tracking*)"
    - "/var/log/*"
  - bucket: "{{ COMMON_ENVIRONMENT }}-{{ COMMON_DEPLOYMENT }}-tracking-logs"
    paths:
    - "{{ COMMON_LOG_DIR }}/*tracking*"
```


This generates a bash script that does the following:
* creates an hourly cron that syncs the AWS_S3_LOG_PATHS to the corresponding buckets
* runs the script on shutdown
* emails AWS_S3_LOGS_NOTIFY_MAIL on any failure with a copy of the log

Note that we probably should stagger the cron runs but there is not currently an easy way to do this in ansible.

@e0d @feanil  @hkim823  @carsongee @sefk