mgmt: Fix issue with readvertisement commands always returning error code

NFD RIB commands in NLSR were previously always returning 406 errors due
to not having correct default return values for optional post-processing.
This does not appear to impede functionality but does cause incorrect
behavior on the NFD side and is blocking other changes.

Also fixes an issue where NLSR was not sending correctly formatted responses
back to commands from NFD which was raising errors.

Refs #5358

Change-Id: Iffe6a2416a6d7eafa44e17c821bf903c12ecb104
diff --git a/src/update/prefix-update-processor.hpp b/src/update/prefix-update-processor.hpp
index bc59937..bc05937 100644
--- a/src/update/prefix-update-processor.hpp
+++ b/src/update/prefix-update-processor.hpp
@@ -57,13 +57,19 @@
   /*! \brief Add or delete an advertise or withdrawn prefix to the nlsr
    * configuration file
    */
-  bool
+  std::tuple<bool, std::string>
   addOrDeletePrefix(const ndn::Name& prefix, bool addPrefix);
 
-  std::optional<bool>
+  /*! \brief Save an advertised prefix to the nlsr configuration file.
+   *  \return tuple {bool indicating success/failure, message string}.
+   */
+  std::tuple<bool, std::string>
   afterAdvertise(const ndn::Name& prefix) override;
 
-  std::optional<bool>
+  /*! \brief Remove an advertised prefix from the nlsr configuration file.
+   *  \return tuple {bool indicating success/failure, message string}.
+   */
+  std::tuple<bool, std::string>
   afterWithdraw(const ndn::Name& prefix) override;
 
   /*! \brief Check if a prefix exists in the nlsr configuration file */