[schema] edit syntax tree instead of playing with strings for RQLExpressions
Lets us support more complex expressions involving e.g. "HAVING" clauses.
Closes #3202855
[entity] do not raise an AssertionError if the kwargs given to set_relations/attributes is empty
Regression was introduced in 3.16 with the new cw_set API.
Old set_relations and set_attributes methods did not crash on empty
kwargs.
Closes #3104019.