throw IllegalArgumentException if both field name and value are empty (to avoid a confusing "term out of order" exception later)