[#690] Authenticated interaction with Amazon S3

Implements authenticated requests using Amazon S3 REST api

* Backward compatibility:
  * Devices running `1.x.x` APK expect that  `/surveys/*` is public. So survey definition will remain public
  * Devices running `1.x.x` APK will upload data to `/devicezip/*` and marked as `public-read`, when the server gets the notification for data ingestion, the first action is to mark the object as `private`
Having those `put` public enables _testing_. I can write a class that uses that helper method passing all required data as arguments.

If we move those to `private` is like using a method with a _predefined state_. We need to append to `System.properties` the proper `<key,value>` pairs to test the method.