(n) a mentally
disturbed, insane, or attention-seaking person that does or says revolting, disgusting, or bizarre things.
OR
a person who says or does twisted or
gross things (but is not necessarily insane)
The origin of this
slang word is unknown, but it probably comes from the fact that puppies eat their own vomit and feces, especially when sick.