Lots of different pieces added

* Integration tests that actually run against s3
* Api split up into smaller more simple parts
* Abstractions over api operations put in a sepearate trait
* delete operation added