fixes #11

I did some major recoding. The old widget is still there but throws a deprecation warning.
It could be removed as well, adding permissions changes how most stuff works.

I added unittests and travis-ci support. I all works well. I also tested it using a AWS S3 instance, and it works great!

Let me know if you want me to change anything or improve backwards compatibility.