PyNDN: A lot of fixes and API unification

There is actually a very strange/interesting bug with callback
Python/C++/Python callback mechanism.  Needed to add a nasty addition
(potential memory leak and performance degradation) to eliminate
segfaults.
diff --git a/PyNDN/Name.py b/PyNDN/Name.py
index 7729a25..60ac68d 100644
--- a/PyNDN/Name.py
+++ b/PyNDN/Name.py
@@ -73,7 +73,10 @@
             raise ValueError("Unknown __getitem__ type: %s" % type (key))
 
     def __repr__ (self):
-        return "ndnSIM.Name('" + self._name.toUri () + "')"
+        return "ndn.Name('" + self._name.toUri () + "')"
 
     def __str__ (self):
         return self._name.toUri ()
+
+    def isPrefixOf (self, other):
+        return self[:] == other[:len(self)]