Added acky.s3

All methods tested.
This looks a lot like urlparse/urllib.parse. If we can't use that directly, maybe it should be wrapped to make this more resilient.