management: ensure Element::Error inherits from tlv::Error

Add static asserts to ensure ndn::nfd::*::Error are subclasses of tlv::Error.

Add WireEncodable and WireDecodable concept checks to
ndn::nfd::* classes that represent TLV abstraction.

Move definition of ChannelStatus, FibEntry, ForwarderStatus,
StrategyChoice methods into .cpp.

Move declaration of FaceScope, FacePersistency, LinkType
into encoding/nfd-constants.hpp.

Eliminate duplicate RibFlags declaration.

refs #1983

Change-Id: I207bae479aa6da54a581a7cca5b2a13743827ff0
diff --git a/src/management/nfd-rib-flags.hpp b/src/management/nfd-rib-flags.hpp
index 73feaa7..07e36d1 100644
--- a/src/management/nfd-rib-flags.hpp
+++ b/src/management/nfd-rib-flags.hpp
@@ -22,22 +22,13 @@
 #ifndef NDN_MANAGEMENT_NFD_RIB_FLAGS_HPP
 #define NDN_MANAGEMENT_NFD_RIB_FLAGS_HPP
 
+#include "../encoding/nfd-constants.hpp"
+
 namespace ndn {
 namespace nfd {
 
 /**
  * \ingroup management
- * \brief provides additional information about a RIB entry
- */
-enum RibFlags {
-  RIB_CHILD_INHERIT = 1,
-  RIB_CAPTURE = 2
-  // RIB_? = 4
-  // RIB_? = 8
-};
-
-/**
- * \ingroup management
  * \brief implements getters to each RIB flag
  *
  * \tparam T class containing a RibFlags field and implements
@@ -50,13 +41,13 @@
   bool
   isChildInherit() const
   {
-    return static_cast<const T*>(this)->getFlags() & RIB_CHILD_INHERIT;
+    return static_cast<const T*>(this)->getFlags() & ROUTE_FLAG_CHILD_INHERIT;
   }
 
   bool
   isRibCapture() const
   {
-    return static_cast<const T*>(this)->getFlags() & RIB_CAPTURE;
+    return static_cast<const T*>(this)->getFlags() & ROUTE_FLAG_CAPTURE;
   }
 };