qstr, objstr: Make sure that valid hash != 0, treat 0 as "not computed".

This feature was proposed with initial hashing RFC, and is prerequisite for
seamless static str object definition.
diff --git a/py/qstr.c b/py/qstr.c
index e4b5c11..990ff37 100644
--- a/py/qstr.c
+++ b/py/qstr.c
@@ -35,7 +35,12 @@
     for (const byte *top = data + len; data < top; data++) {
         hash = ((hash << 5) + hash) ^ (*data); // hash * 33 ^ data
     }
-    return hash & 0xffff;
+    hash &= 0xffff;
+    // Make sure that valid hash is never zero, zero means "hash not computed"
+    if (hash == 0) {
+        hash++;
+    }
+    return hash;
 }
 
 typedef struct _qstr_pool_t {