build+ci: switch to python3

Also in this commit:
 * Sync CI scripts with other projects
 * Improve README.md

Refs: #5095
Change-Id: I0972967e92bdf78b8ab7cda0d9db262e38c8b32b
diff --git a/.jenkins.d/util.sh b/.jenkins.d/util.sh
index a89bc27..8077a74 100644
--- a/.jenkins.d/util.sh
+++ b/.jenkins.d/util.sh
@@ -16,3 +16,24 @@
     set ${saved_xtrace}
     return ${ret}
 }
+export -f has
+
+sudo_preserve_env() {
+    local saved_xtrace
+    [[ $- == *x* ]] && saved_xtrace=-x || saved_xtrace=+x
+    set +x
+
+    local vars=()
+    while [[ $# -gt 0 ]]; do
+        local arg=$1
+        shift
+        case ${arg} in
+            --) break ;;
+            *)  vars+=("${arg}=${!arg}") ;;
+        esac
+    done
+
+    set ${saved_xtrace}
+    sudo env "${vars[@]}" "$@"
+}
+export -f sudo_preserve_env