change precedence of ":" to be lower than "%", and added hook in ASTExpand visitor to test if its child is ASTKeyExpand; and omit thit the traversal expansion in that case. This makes %{%foo}:KEY, %foo:KEY and %%foo:KEY behave as they do in libcrange; added BFS of in-edges for ASTAdmin visitor to search for the admin in the nearest parent node. modified unittest for parser to verify the AST generation for the precedence change; made visitor const safe, as is required by boost::apply_visitor