Merge pull request #17 from hbunke/file_upload

added authorization header to _post_multipart. File upload does not work without - thx to @hbunke.
Merge pull request #18 from hbunke/file_upload

fixed: missing server location in fileupload URL
Handle errors from upload_file
Use the url upload_file is returning
Return the url the storage system says it is.
Use all the key-values returned by storage
Convert _post_multipart to use urllib2

And as a sideeffect, be able to post to storage thats offsite, eg. s3
Keep data from trying to be converted by encodings

We downgrade everything to str, and we need to use .encode('ascii')
becase someone redefined the str-operator. This is so when underlaying
libraries tries to string-concatinate http, they will not try to handle
encodings.
Workaround for missing/wrong URL from pull request #19

urllib2 refused to open URL submitted by _post_multipart