ci: compile-check installed headers

Script copied from ndn-cxx with minor modifications

Also, move tlv.hpp to detail/ and cleanup includes in common.hpp

Change-Id: I6240601f005c61bb3547bd5acf854200f3b13093
diff --git a/src/state.hpp b/src/state.hpp
index e5d0de2..7bbb60c 100644
--- a/src/state.hpp
+++ b/src/state.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil -*- */
 /*
- * Copyright (c) 2012-2017 University of California, Los Angeles
+ * Copyright (c) 2012-2021 University of California, Los Angeles
  *
  * This file is part of ChronoSync, synchronization library for distributed realtime
  * applications for NDN.
@@ -26,9 +26,9 @@
 #define CHRONOSYNC_STATE_HPP
 
 #include "leaf-container.hpp"
-#include "tlv.hpp"
 
 #include <ndn-cxx/util/sha256.hpp>
+#include <tuple>
 
 namespace chronosync {
 
@@ -49,11 +49,7 @@
   class Error : public std::runtime_error
   {
   public:
-    explicit
-    Error(const std::string& what)
-      : std::runtime_error(what)
-    {
-    }
+    using std::runtime_error::runtime_error;
   };
 
   virtual
@@ -112,9 +108,9 @@
   wireDecode(const Block& wire);
 
 protected:
-  template<encoding::Tag T>
+  template<ndn::encoding::Tag T>
   size_t
-  wireEncode(encoding::EncodingImpl<T>& block) const;
+  wireEncode(ndn::encoding::EncodingImpl<T>& block) const;
 
 protected:
   LeafContainer m_leaves;