fw: NccStrategy remembers only best face

refs #1961

Strategy::beforeSatisfyPendingInterest is renamed to
Strategy::beforeSatisfyInterest, so as to match the semantics of this trigger.
This is a backwards-incompatible change that requires function renaming in
all subclasses of Strategy class.

LimitedIo::afterOp gets a bugfix that allows it to be invoked out of
LimitedIo::run without leaving io_service unusable.

Change-Id: Ia4c632beb62c554724b83846a3d6358ae08779ad
diff --git a/daemon/fw/ncc-strategy.cpp b/daemon/fw/ncc-strategy.cpp
index fcabe7a..925a3cf 100644
--- a/daemon/fw/ncc-strategy.cpp
+++ b/daemon/fw/ncc-strategy.cpp
@@ -183,9 +183,15 @@
 }
 
 void
-NccStrategy::beforeSatisfyPendingInterest(shared_ptr<pit::Entry> pitEntry,
-                                          const Face& inFace, const Data& data)
+NccStrategy::beforeSatisfyInterest(shared_ptr<pit::Entry> pitEntry,
+                                   const Face& inFace, const Data& data)
 {
+  if (pitEntry->getInRecords().empty()) {
+    // PIT entry has already been satisfied (and is now waiting for straggler timer to expire)
+    // NCC does not collect measurements for non-best face
+    return;
+  }
+
   shared_ptr<measurements::Entry> measurementsEntry = this->getMeasurements().get(*pitEntry);
 
   for (int i = 0; i < UPDATE_MEASUREMENTS_N_LEVELS; ++i) {