Change how word splitting works when completing

Previously, I relied on replxx to correctly split words based on
word-splitting characters. However, as completion gets more complex and
completions possibly insert word-splitting characters, it starts to do
weird stuff like deleting some of your input. Fortunately, replxx allows
you to set the context length for completion - that is, how many
character it should consider as part of the word you're completing.

Change-Id: I035ac5059c8ab125efedb90cbeb2910f20da04a7
diff --git a/src/parser_context.hpp b/src/parser_context.hpp
index 10a6634..77357e7 100644
--- a/src/parser_context.hpp
+++ b/src/parser_context.hpp
@@ -32,7 +32,7 @@
     bool m_completing = false;
     std::set<std::string> m_suggestions;
     // Iterator pointing to where suggestions were created
-    std::string::const_iterator m_completionIterator;
+    boost::optional<std::string::const_iterator> m_completionIterator;
     // If the parser determines that suggestions are unambiguous (after
     // filtering by prefix), this suffix gets added to the completion (for
     // example a left bracket after a list)