Refactor credentials management to support multiple mechanisms.
Refactor credentials management to support multiple mechanisms.

This PR adds the ability of chaining the credentials provider,
such that restic as a tool attempts to honor credentials from
multiple different ways.

Currently supported mechanisms are

 - static (user-provided)
 - IAM profile (only valid inside configured ec2 instances)
 - Standard AWS envs (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
 - Standard Minio envs (MINIO_ACCESS_KEY, MINIO_SECRET_KEY)

Refer https://github.com/restic/restic/issues/1341

restic/restic,middelink/restic,fawick/restic,ar-jan/restic,middelink/restic,kurin/restic,kurin/restic,ar-jan/restic,fawick/restic,restic/restic