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-face-status.hpp b/src/management/nfd-face-status.hpp
index 237b3f1..5b70ce2 100644
--- a/src/management/nfd-face-status.hpp
+++ b/src/management/nfd-face-status.hpp
@@ -22,9 +22,8 @@
 #ifndef NDN_MANAGEMENT_NFD_FACE_STATUS_HPP
 #define NDN_MANAGEMENT_NFD_FACE_STATUS_HPP
 
-// This include must be kept as the first one, to ensure nfd-face-flags.hpp compiles on its own.
-#include "nfd-face-traits.hpp"
-
+#include "nfd-face-traits.hpp" // include this first, to ensure it compiles on its own.
+#include "../encoding/block.hpp"
 #include "../util/time.hpp"
 
 namespace ndn {