rib: simplify Route class

Route::expires is changed to an optional, with nullopt representing
"never expires". This avoids an integer overflow.

RouteFlags accessors are now provided by ndn::nfd::RouteFlagsTraits.

Stream insertion operator is improved.

refs #3502

Change-Id: Ia912eab771fb00020385bf84d486955feae6aafa
diff --git a/tests/rib/fib-updates-common.hpp b/tests/rib/fib-updates-common.hpp
index 59505bc..925ca81 100644
--- a/tests/rib/fib-updates-common.hpp
+++ b/tests/rib/fib-updates-common.hpp
@@ -72,7 +72,7 @@
   void
   insertRoute(const Name& name, uint64_t faceId,
               std::underlying_type<ndn::nfd::RouteOrigin>::type origin,
-              uint64_t cost, uint64_t flags)
+              uint64_t cost, std::underlying_type<ndn::nfd::RouteFlags>::type flags)
   {
     Route route = createRoute(faceId, origin, cost, flags);