Adds a flag for passing an AWS credentials file into Apex
Adds a flag for passing an AWS credentials file into Apex

A lot of the AWS SDK examples pass an empty string as the
first value to ```NewSharedCredentials``` and the same pattern
is present in Apex.

While most folks who don't have ENV stuff set will have a
credentials file at ```~/.aws/credentials``` there is the possibility
that they will want to provide a different file. Docker builders
come to mind, for example.

Additionally, having an explicit value for the credentials file will
make it easier to configure an AWS provider via Terraform, if Apex
or related projects add bootstrap/generator type commands.

The aws.Config variable in root.go was also made public, which
enables us to do stuff like grabbing the credentials file via:
```Config.Credentials.Filename``` for Terraform, etc.

This is because the AWS SDK will - if Credentials.Filename is "" -
set it to the derived value, making it easy to grab if need be.

ianrtracey/apex,DaveBlooman/apex,ianrtracey/apex,llun/apex,DaveBlooman/apex,DaveBlooman/apex,apex/apex,apex/apex,ianrtracey/apex,ianrtracey/apex,llun/apex,llun/apex,DaveBlooman/apex,tobyjoe/apex,llun/apex,llun/apex,DaveBlooman/apex,ianrtracey/apex,tobyjoe/apex,ianrtracey/apex,apex/apex,DaveBlooman/apex,apex/apex,apex/apex,tobyjoe/apex,apex/apex,llun/apex,apex/apex