I just bought two large plastic bins with tops for $5.00, and they work just fine.
I just put them next to the sink in my laundry room, out of reach (I too have a dog and a cat!).
One for clean dipes fresh out of the laundry, one for dirty ones - I do not soak (yucky!).
I also keep 2-3 separate little baskets filled with diapers around the house (because I change her almost everywhere and my house is big, or should I say I am too lazy lol). When I run out, I just go to the "main source" in my laundry room to refill. LOL
When I change daughter's diapers, I just bring it into the laundry room immediately.
I find that this is easier and keeps all the odors, etc in one small room.
But I don't really have odors, since the bin has a cover that works pretty good to contain the smells.
If it happens to be a poopy dipe, I just rinse it in the sink first, squeeze out as much water as possible and put it into the bin - my dry diaper "pail".
I usually do this right after my daughter has been changed, so that the stain won't set and the smells won't stay. But I have left a few poopy ones without soaking or rinsing right away.
I just rinsed them ASAP and haven't had any stain problems (by the way, my daughter is still exclusively breastfed!) I also wash at least every other day -a max of 2 dozen at a time, with wipes.