Tish James wins Public Advocate race