Adding S3 backed pillar based on existing S3 filesystem

I adapted (shamelessly copied and modified) the code for the S3 file system to work for as a remote pillar. This is my first feature level PR and I think this will need some more polish before getting merged, but I wanted to get it out here for feedback.

I will continue to test it in our environment, but I would like to get any feedback now while I am working on this project.

The only "issue" I currently have is that it doesn't work when multiple S3 pillars are defined. In other words, this doesn't work (salt ignores the second option):

    ext_pillar:
      - s3:
          bucket: my.fancy.pillar
          keyid: foo
          key: bar
      - s3:
          bucket: my.other.fancy.pillar
          keyid: foo
          key: bar