build: switch to C++14

Replace our homegrown implementation of optional (based
on Boost.Optional) with optional-lite by Martin Moene.

Change-Id: I4632cbc7c705a94af0b85a335515e3430bf3cb1f
Refs: #3076
diff --git a/src/interest.hpp b/src/interest.hpp
index 5fc1c42..7d0705e 100644
--- a/src/interest.hpp
+++ b/src/interest.hpp
@@ -39,7 +39,7 @@
 
 /** @brief Represents an Interest packet.
  */
-class Interest : public PacketBase, public enable_shared_from_this<Interest>
+class Interest : public PacketBase, public std::enable_shared_from_this<Interest>
 {
 public:
   class Error : public tlv::Error
@@ -272,21 +272,21 @@
 public: // Selectors (deprecated)
   /** @brief Check if Interest has any selector present.
    */
-  NDN_CXX_DEPRECATED
+  [[deprecated]]
   bool
   hasSelectors() const
   {
     return !m_selectors.empty();
   }
 
-  NDN_CXX_DEPRECATED
+  [[deprecated]]
   const Selectors&
   getSelectors() const
   {
     return m_selectors;
   }
 
-  NDN_CXX_DEPRECATED
+  [[deprecated]]
   Interest&
   setSelectors(const Selectors& selectors)
   {
@@ -295,14 +295,14 @@
     return *this;
   }
 
-  NDN_CXX_DEPRECATED
+  [[deprecated]]
   int
   getMinSuffixComponents() const
   {
     return m_selectors.getMinSuffixComponents();
   }
 
-  NDN_CXX_DEPRECATED
+  [[deprecated]]
   Interest&
   setMinSuffixComponents(int minSuffixComponents)
   {
@@ -311,14 +311,14 @@
     return *this;
   }
 
-  NDN_CXX_DEPRECATED
+  [[deprecated]]
   int
   getMaxSuffixComponents() const
   {
     return m_selectors.getMaxSuffixComponents();
   }
 
-  NDN_CXX_DEPRECATED
+  [[deprecated]]
   Interest&
   setMaxSuffixComponents(int maxSuffixComponents)
   {
@@ -327,14 +327,14 @@
     return *this;
   }
 
-  NDN_CXX_DEPRECATED
+  [[deprecated]]
   const KeyLocator&
   getPublisherPublicKeyLocator() const
   {
     return m_selectors.getPublisherPublicKeyLocator();
   }
 
-  NDN_CXX_DEPRECATED
+  [[deprecated]]
   Interest&
   setPublisherPublicKeyLocator(const KeyLocator& keyLocator)
   {
@@ -343,14 +343,14 @@
     return *this;
   }
 
-  NDN_CXX_DEPRECATED
+  [[deprecated]]
   const Exclude&
   getExclude() const
   {
     return m_selectors.getExclude();
   }
 
-  NDN_CXX_DEPRECATED
+  [[deprecated]]
   Interest&
   setExclude(const Exclude& exclude)
   {
@@ -359,14 +359,14 @@
     return *this;
   }
 
-  NDN_CXX_DEPRECATED
+  [[deprecated]]
   int
   getChildSelector() const
   {
     return m_selectors.getChildSelector();
   }
 
-  NDN_CXX_DEPRECATED
+  [[deprecated]]
   Interest&
   setChildSelector(int childSelector)
   {