If he is refusing to eat, and is just laying around - you need to get to the vet ASAP! Inappetance is not a good sign in a dog - they only don't eat if/when they're feeling pretty awful. If this has gone on for more than a day, you truly need to go in.
Also, that strong of an odor means something is going on w/ either his skin or his organs.
For allergies, read this:
http://www.yorkietalk.com/forums/die...tart-here.html