AWS Environment variables

Added support for the `AWS_SESSION_TOKEN` which can be used instead of the `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`. This is particularly useful when using IAM roles and fetching the credentials via the EC2 meta-data.

Removed the custom AWS environment variables in preference for the default ones the AWS SDK expects which made the AWS config step unnecessary.

Moved validation into it's own file to remove duplication and add some extra steps.

Inform the user that `AWS_S3_KEY`, `AWS_S3_SECRET` and `AWS_S3_REGION` are deprecated and transfer their values to the AWS default env.

I've tried to keep my commits small and added reasoning for each change