Programmable RNA-guided endonucleases are widespread in eukaryotes and their viruses