BUGS: Solving (apparently) two subtle bugs in new PIT and ContentStore implementations

The first bug is related to erase in multiset container. Instead of
erasing using iterator, a key-based erase was used.  In multiset that
caused several unexpected effects (erasure or multiple items instead of
one).

Another bug is related to random policy for trie-based container.
Similar to previously discovered bug with time index (previous commit),
random policy was using boost::intrusive::set, instead of multiset,
which in some rare cases (multiple items in container and generation of
the same random number) caused unexpected behavior and (eventually)
crashes.  Change to multiset solves the problem.

fixes #5
diff --git a/model/pit/ccnx-pit-entry-impl.h b/model/pit/ccnx-pit-entry-impl.h
index c707cd6..4b49cbd 100644
--- a/model/pit/ccnx-pit-entry-impl.h
+++ b/model/pit/ccnx-pit-entry-impl.h
@@ -46,7 +46,7 @@
   
   virtual ~CcnxPitEntryImpl ()
   {
-    CONTAINER.i_time.erase (*this);
+    CONTAINER.i_time.erase (Pit::time_index::s_iterator_to (*this));
     
     CONTAINER.RescheduleCleaning ();
   }
@@ -54,7 +54,7 @@
   virtual void
   UpdateLifetime (const Time &offsetTime)
   {
-    CONTAINER.i_time.erase (*this);
+    CONTAINER.i_time.erase (Pit::time_index::s_iterator_to (*this));
     super::UpdateLifetime (offsetTime);
     CONTAINER.i_time.insert (*this);
 
diff --git a/utils/random-policy.h b/utils/random-policy.h
index 2b17fb9..c745b3b 100644
--- a/utils/random-policy.h
+++ b/utils/random-policy.h
@@ -70,7 +70,7 @@
       }
     };
 
-    typedef boost::intrusive::set< Container,
+    typedef boost::intrusive::multiset< Container,
                                    boost::intrusive::compare< MemberHookLess< Container > >,
                                    Hook > policy_container;