face: Mark Face class as noncopyable

Copy of the Face object has undefined behavior and thus is prohibited.

Change-Id: I701e208c498d323c33d2a32bd6f1e163415b25a6
refs: #1252
diff --git a/src/common.hpp b/src/common.hpp
index 6398323..bed6c3c 100644
--- a/src/common.hpp
+++ b/src/common.hpp
@@ -47,8 +47,10 @@
 namespace ndn {
 
 namespace ptr_lib = std;
-namespace func_lib = std
-  
+namespace func_lib = std;
+
+using std::noncopyable;
+
 using std::shared_ptr;
 using std::make_shared;
 using std::enable_shared_from_this;
@@ -74,6 +76,8 @@
 namespace ptr_lib = boost;
 namespace func_lib = boost;
 
+using boost::noncopyable;
+
 using boost::shared_ptr;
 using boost::make_shared;
 using boost::enable_shared_from_this;
diff --git a/src/face.hpp b/src/face.hpp
index 9b1fbe4..b617e42 100644
--- a/src/face.hpp
+++ b/src/face.hpp
@@ -50,7 +50,8 @@
 /**
  * @brief Abstraction to communicate with local or remote NDN forwarder
  */
-class Face {
+class Face : noncopyable
+{
 public:
   struct Error : public std::runtime_error { Error(const std::string &what) : std::runtime_error(what) {} };