Add option to pass S3 policy to constructor

Problem was that I want to pass in an S3 policy from an endpoint; could need to do this for any number of reasons (short policy life, different size caps apply to different media types, don't want to render the policy JSON in source, as in the 'test' example).  Also, depending on a global S3 object seems to violate the idea that modules should not have to know about globals.