Fix `prepare`

The parsing algorithm was broken and prepare couldn't recognize RPC
nodes. The mistake probably happened when I added Action support, but
with no tests. Tests are now included.

Change-Id: I1b4eb2eb76a30c4495e2aacbb6848f449eba3abb
diff --git a/src/path_parser.hpp b/src/path_parser.hpp
index e1982f5..3abbce3 100644
--- a/src/path_parser.hpp
+++ b/src/path_parser.hpp
@@ -441,7 +441,7 @@
         }
 
         if (attr.m_nodes.empty()
-                || (!std::holds_alternative<actionNode_>(attr.m_nodes.back().m_suffix) && !std::holds_alternative<actionNode_>(attr.m_nodes.back().m_suffix))) {
+                || (!std::holds_alternative<rpcNode_>(attr.m_nodes.back().m_suffix) && !std::holds_alternative<actionNode_>(attr.m_nodes.back().m_suffix))) {
             auto& parserContext = x3::get<parser_context_tag>(ctx);
             parserContext.m_errorMsg = "This is not a path to an RPC/action.";
             return false;