Fix for Boost 1.78

New Boost does not revert iterators in some cases, so reverting must be
done manually.

About the command_completion change: I have no idea, but the 1.77 fix
works for 1.78.

This actually needs this patch
https://github.com/boostorg/spirit/pull/711. No idea how to inject that
to the CI.

Issue: https://github.com/boostorg/spirit/issues/703#issuecomment-1011021773
Change-Id: I2d1266b1f8b893f180ae36842bdfdb35c5629ea4
diff --git a/src/grammars.hpp b/src/grammars.hpp
index 6d7f11b..a6df5c9 100644
--- a/src/grammars.hpp
+++ b/src/grammars.hpp
@@ -346,7 +346,7 @@
     x3::eps;
 
 auto const command_def =
-#if BOOST_VERSION <= 107700
+#if BOOST_VERSION <= 107800
     x3::eps >>
 #endif
     createCommandSuggestions >> x3::expect[cd | copy | create | delete_rule | set | commit | get | ls | discard | describe | help | move | dump | prepare | exec | cancel | switch_rule];