sample_updater: add non-streaming demo

SampleUpdater app was tested manually on a device.
There are unit tests for utility classes.

SampleUpdater app demonstrates how to use Android Update Engine to
apply A/B (seamless) update.
This CL contains demo of non-stream update using async update_engine,
which is accessed directly from an activity.
This app also shows logs from update_engine on the UI.
Instructions can be found in `README.md`.

- Create a UI with list of configs, current version, control buttons and a progress bar
- Add PayloadSpec and PayloadSpecs for working with update zip file
- Add UpdateConfig for working with json config files
- Add applying non-streaming update

Test: tested manually and unit tests for utilities
Change-Id: I05d4a46ad9cf8b334c9c60c7dd4da486dac0400a
Signed-off-by: Zhomart Mukhamejanov <zhomart@google.com>
diff --git a/sample_updater/res/raw/sample.json b/sample_updater/res/raw/sample.json
new file mode 100644
index 0000000..03335cc
--- /dev/null
+++ b/sample_updater/res/raw/sample.json
@@ -0,0 +1,22 @@
+{
+    "__name": "name will be visible on UI",
+    "__url": "https:// or file:// uri to update file (zip, xz, ...)",
+    "__type": "NON_STREAMING (from local file) OR STREAMING (on the fly)",
+    "name": "SAMPLE-cake-release BUILD-12345",
+    "url": "file:///data/builds/android-update.zip",
+    "type": "NON_STREAMING",
+    "streaming_metadata": {
+        "__": "streaming_metadata is required only for streaming update",
+        "__property_files": "name, offset and size of files",
+        "property_files": [
+            {
+                "__filename": "payload.bin and payload_properties.txt are required",
+                "__offset": "defines beginning of update data in archive",
+                "__size": "size of the update data in archive",
+                "filename": "payload.bin",
+                "offset": 531,
+                "size": 5012323
+            }
+        ]
+    }
+}