Rework x3::phrase_parse into x3::parse

For commands, there is predefined places where we want to skip spaces:
on the start of the command, in between command arguments and at the
end of the command. Using phrase_parse just makes everything more
complicated, since I have to actually disable space skipping a lot of
the time.

For ls: the ">>" did unexpected stuff, because for example this input:
  > ls foo
could fail if "foo" wasn't a valid node. However, because the ls path
argument is wrapped in in the optional parser, it would still parse it as
valid.

For get: same as ls.

Change-Id: I90b32e1a270da0c228691935cc7206d73248025a
diff --git a/src/parser.cpp b/src/parser.cpp
index d37e37e..982be11 100644
--- a/src/parser.cpp
+++ b/src/parser.cpp
@@ -40,7 +40,7 @@
             x3::with<x3::error_handler_tag>(std::ref(errorHandler))[
             x3::with<writableOps_tag>(m_writableOps)[command]]
     ];
-    bool result = x3::phrase_parse(it, line.end(), grammar, x3::space, parsedCommand);
+    bool result = x3::parse(it, line.end(), grammar, parsedCommand);
 
     if (!result || it != line.end()) {
         throw InvalidCommandException(std::string(it, line.end()) + " this was left of input");
@@ -63,7 +63,7 @@
             x3::with<x3::error_handler_tag>(std::ref(errorHandler))[
             x3::with<writableOps_tag>(m_writableOps)[command]]
     ];
-    x3::phrase_parse(it, line.end(), grammar, x3::space, parsedCommand);
+    x3::parse(it, line.end(), grammar, parsedCommand);
 
     auto completionIterator = ctx.m_completionIterator ? *ctx.m_completionIterator : line.end();