Fixups to the hash function for frozensets.

* Non-zero initial value so that hash(frozenset()) != hash(0).
* Final permutation to differentiate nested sets.
* Add logic to make sure that -1 is not a possible hash value.
diff --git a/Objects/setobject.c b/Objects/setobject.c
index fbff077..8de0419 100644
--- a/Objects/setobject.c
+++ b/Objects/setobject.c
@@ -663,7 +663,7 @@
 	PySetObject *so = (PySetObject *)self;
 	PyObject *key, *value;
 	int pos = 0;
-	long hash = 0;
+	long hash = 1905176217L;
 
 	if (so->hash != -1)
 		return so->hash;
@@ -676,6 +676,9 @@
 		   collapse to only a handful of distinct hash values. */
 		hash ^= PyObject_Hash(key) * 3644798167u;
 	}
+	hash *= 69069L;
+	if (hash == -1)
+		hash = 590923713L;
 	so->hash = hash;
 	return hash;
 }