Use the region as part of the cache key in base provider
Use the region as part of the cache key in base provider

When running puppet against multiple regions, the *_from_id functions
require a region and an id. The cache implementation only uses the id
as key, and always looks up items in the first region (memoized within
the ec2 client).

This commit changes the caching implementation so that the region is
passed as part of the cache key and used to access the correct API.

marksyme/puppetlabs-aws,DavidS/puppetlabs-aws,DavidS/puppetlabs-aws,hundredacres/puppetlabs-aws,marksyme/puppetlabs-aws,zvymazal/puppetlabs-aws,puppetlabs/puppetlabs-aws,zvymazal/puppetlabs-aws,daveseff/puppetlabs-aws,daveseff/puppetlabs-aws,zleswomp/puppetlabs-aws,gregohardy/puppetlabs-aws,benpillet/puppetlabs-aws,rfletcher/puppet-aws,gregohardy/puppetlabs-aws,zleswomp/puppetlabs-aws,rfletcher/puppet-aws,benpillet/puppetlabs-aws,hundredacres/puppetlabs-aws,puppetlabs/puppetlabs-aws