Large puffins cannot eat puffins or puffin eggs. They do scare puffins and annoy them but only to make them drop their fish that they have caught. They really do not eat the puffins; they just want the fish that they have caught.
Yes you can. But most people tend not to. Here's an Icelandic recipe for Puffin in milk sauce: http://icecook.blogspot.com/2006/07/puffin-in-milk-sauce-mjlkursoinn-lundi.html
Anything that can catch them - at sea that mostly means any of the large gulls and related birds such as skuas. On land, usually when nesting - foxes rats, mink, weasels, stoats, otters etc.,...