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/meta-info.hpp b/src/meta-info.hpp
index 911b1a3..3c3c59e 100644
--- a/src/meta-info.hpp
+++ b/src/meta-info.hpp
@@ -34,7 +34,7 @@
 const time::milliseconds DEFAULT_FRESHNESS_PERIOD = time::milliseconds::zero();
 
 /**
- * An MetaInfo holds the meta info which is signed inside the data packet.
+ * A MetaInfo holds the meta info which is signed inside the data packet.
  *
  * The class allows experimentation with application-defined meta information blocks,
  * which slightly violates NDN-TLV specification.  When using the application-defined
@@ -138,7 +138,7 @@
    *  If FinalBlockId element is omitted, returns a default-constructed @c name::Component.
    *  This is indistinguishable from having an empty GenericNameComponent as FinalBlockId.
    */
-  NDN_CXX_DEPRECATED
+  [[deprecated("use getFinalBlock")]]
   name::Component
   getFinalBlockId() const
   {
@@ -151,7 +151,7 @@
    *  Passing a default-constructed @c name::Component removes FinalBlockId element.
    *  This API does not support adding an empty GenericNameComponent as FinalBlockId.
    */
-  NDN_CXX_DEPRECATED
+  [[deprecated("use setFinalBlock")]]
   MetaInfo&
   setFinalBlockId(const name::Component& finalBlockId);