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-entry.hpp b/src/management/nfd-rib-entry.hpp
index dcdfe50..8fa1704 100644
--- a/src/management/nfd-rib-entry.hpp
+++ b/src/management/nfd-rib-entry.hpp
@@ -22,11 +22,7 @@
 #ifndef NDN_MANAGEMENT_NFD_RIB_ENTRY_HPP
 #define NDN_MANAGEMENT_NFD_RIB_ENTRY_HPP
 
-#include "nfd-rib-flags.hpp"
-
-#include "../encoding/block.hpp"
-#include "../encoding/encoding-buffer.hpp"
-#include "../encoding/tlv-nfd.hpp"
+#include "nfd-rib-flags.hpp" // include this first, to ensure it compiles on its own.
 #include "../name.hpp"
 #include "../util/time.hpp"
 
@@ -89,6 +85,9 @@
     return m_origin;
   }
 
+  /** @brief set Origin
+   *  @param origin a code defined in ndn::nfd::RouteOrigin
+   */
   Route&
   setOrigin(uint64_t origin)
   {
@@ -117,6 +116,9 @@
     return m_flags;
   }
 
+  /** @brief set route inheritance flags
+   *  @param flags a bitwise OR'ed code from ndn::nfd::RouteFlags
+   */
   Route&
   setFlags(uint64_t flags)
   {