Few fixes and changes

Hi, made a few tweaks to fix issues I ran into and added some hopefully useful (to others) features.
I'm using objects.dreamhost.com and found you weren't actually passing the custom hostname through to boto.

* fixed S3Storage.bucket to allow using s3 based storage not hosted by Amazon
* added more shortcut functions (delete, get_url, download)
* allow to set permissions on bucket/key other than public read
* fixed S3Storage.url using inbuilt boto method
* allow creating write-once files, by setting replace=False on upload.
* override Storage.get_available_name to stop creating extra files when you intended to replace existing file.
* by default will now replace existing files rather than creating a new file with suffix
* hopefully all backwards compatible

I'll admit I haven't written any tests or even know how to run tests in python...
They seem to assume you have an s3 account, which I don't have.

This is the project I'm using this with
https://github.com/stuart-warren/django-s3-proxy

Cheers.