Added FilterOperator, changing QueryFilter constructor to require a List<FilterComponent> instead of Map<String, String>