Move rule tag definitions

Spirit's x3::rule needs some class type so that it can recognize rules.
This class can have some on_success handler which adds some more logic
to the parser. However, some of the classes don't have on_success
handlers. That means that they can be directly declared in the
x3::rule's definition. This indicates that the reader of the code
doesn't have to search for the definition (and check whether there's an
on_success handler).

I'm pretty sure that this can't really be enforced, so really, it's just
a convention.

Change-Id: Ib6e5e76174ad19737242dd8c074a0bbc867e195c
diff --git a/src/common_parsers.hpp b/src/common_parsers.hpp
index d51f9b8..14a2755 100644
--- a/src/common_parsers.hpp
+++ b/src/common_parsers.hpp
@@ -13,10 +13,10 @@
 auto const completing = x3::rule<completing_class, x3::unused_type>{"completing"} =
     x3::eps;
 
-auto const node_identifier = x3::rule<node_identifier_class, std::string>{"node_identifier"} =
+auto const node_identifier = x3::rule<struct node_identifier_class, std::string>{"node_identifier"} =
     ((x3::alpha | x3::char_("_")) >> *(x3::alnum | x3::char_("_") | x3::char_("-") | x3::char_(".")));
 
-auto const module_identifier = x3::rule<module_identifier_class, std::string>{"module_identifier"} =
+auto const module_identifier = x3::rule<struct module_identifier_class, std::string>{"module_identifier"} =
     ((x3::alpha | x3::char_("_")) >> *(x3::alnum | x3::char_("_") | x3::char_("-") | x3::char_(".")));
 
 auto const module = x3::rule<module_class, module_>{"module"} =