filter: simplify dict_to_filter, support ! value prefix, add criteria_to_filter