face+node: Improving async operations

Now expressInterest is executed strictly in io_service thread, which
should guarantee absence of resource contention, provided that
io_service has exactly one thread.

Instead of numerical IDs for expressed Interests and registered
prefixes, an opaque PendingInterestId and RegisteredPrefixId classed are
used.  These classes are basically reinterpret_cast pointers to the
PendingInterest and RegisteredPrefix objects stored on the node.

refs #1142 (http://redmine.named-data.net/issues/1142)

Change-Id: I4b146ee34b98bfa6564935d5f2fe33056a402694
diff --git a/src/face.cpp b/src/face.cpp
index 1161192..45d577b 100644
--- a/src/face.cpp
+++ b/src/face.cpp
@@ -10,8 +10,8 @@
 using namespace std;
 
 namespace ndn {
-  
-uint64_t 
+
+const PendingInterestId*
 Face::expressInterest
   (const Name& name, const Interest *interestTemplate, const OnData& onData, const OnTimeout& onTimeout)
 {