`credentials` should be a TaskKey to make it possible to compute its value from other settings

The use case I have is that I need to dynamically compute the credentials setting from
other settings I have in my build (i.e. I have several settings that look up for
AWS credentials in various places). Having the credentials setting as a SettingKey
makes it impossible to calculate its value by mapping the value of other SettingKey(s)
or TaskKey(s).

```scala

val credentials = TaskKey[Option[AWSCredentials]]("AWS AccessId and SecretKey")

// ...

s3credentials <<= credentials map {
      _.map { awsCredentials =>
        (awsCredentials.getAWSAccessKeyId, awsCredentials.getAWSSecretKey)
      }
    }

```