Support keep_alive where nurse may be None

For example keep_alive<0,1>() should work where the return value may sometimes be None. At present a "Could not allocate weak reference!" exception is thrown.
Update documentation to clarify behaviour of keep_alive when nurse is None or does not support weak references.
diff --git a/example/example-keep-alive.py b/example/example-keep-alive.py
index ad0176e..187ad53 100644
--- a/example/example-keep-alive.py
+++ b/example/example-keep-alive.py
@@ -31,6 +31,7 @@
     gc.collect()
     print(p)
     p = None
+
 gc.collect()
 print("")
 
@@ -43,4 +44,24 @@
 
 gc.collect()
 print("")
+
+if True:
+    p = Parent()
+    p.returnNullChildKeepAliveChild()
+    gc.collect()
+    print(p)
+    p = None
+
+gc.collect()
+print("")
+
+if True:
+    p = Parent()
+    p.returnNullChildKeepAliveParent()
+    gc.collect()
+    print(p)
+    p = None
+
+gc.collect()
+print("")
 print("Terminating..")