Fix MetaField::Search always applying id fields

The Search::add_field(@ARY) syntax will always make the field is_set(), which
causes blank id fields to apply an "IsNull" condition. Replacing with
Search::add_field(%HASH) allows the search field to be not-set i.e. the value
doesn't exist at all.