Require explicit decorator on one arg constructors

We essentially follow this rule already, not relying on implicit
operators, although there are a number of cases where in theory we
could've implicitly constructed an object.

This commit enables the clang-tidy check.

Tested: Code compiles, passes clang-tidy.

Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: Ia428463313b075c69614fdb326e8c5c094e7adde
diff --git a/http/routing.hpp b/http/routing.hpp
index db25433..3a7b9c2 100644
--- a/http/routing.hpp
+++ b/http/routing.hpp
@@ -30,7 +30,7 @@
 class BaseRule
 {
   public:
-    BaseRule(const std::string& thisRule) : rule(thisRule)
+    explicit BaseRule(const std::string& thisRule) : rule(thisRule)
     {}
 
     virtual ~BaseRule() = default;
@@ -224,7 +224,7 @@
     template <typename Req, typename... Args>
     struct ReqHandlerWrapper
     {
-        ReqHandlerWrapper(Func fIn) : f(std::move(fIn))
+        explicit ReqHandlerWrapper(Func fIn) : f(std::move(fIn))
         {}
 
         void operator()(const Request& req,
@@ -328,7 +328,7 @@
     using self_t = WebSocketRule;
 
   public:
-    WebSocketRule(const std::string& ruleIn) : BaseRule(ruleIn)
+    explicit WebSocketRule(const std::string& ruleIn) : BaseRule(ruleIn)
     {}
 
     void validate() override
@@ -467,7 +467,7 @@
 class DynamicRule : public BaseRule, public RuleParameterTraits<DynamicRule>
 {
   public:
-    DynamicRule(const std::string& ruleIn) : BaseRule(ruleIn)
+    explicit DynamicRule(const std::string& ruleIn) : BaseRule(ruleIn)
     {}
 
     void validate() override
@@ -545,7 +545,7 @@
   public:
     using self_t = TaggedRule<Args...>;
 
-    TaggedRule(const std::string& ruleIn) : BaseRule(ruleIn)
+    explicit TaggedRule(const std::string& ruleIn) : BaseRule(ruleIn)
     {}
 
     void validate() override