One of the best (though admittedly not foolproof) ways to decrease lying is to avoid creating opportunities for it. In this scenario:
"I'm thirsty, but I don't want cows milk or water or orange juice" "Do you mean you'd like some of my milk?" "yes" "But I just told you no." kinda stuff
I would have stopped after he said what he doesn't want and offered him a choice of two things. If he refused both, well then...guess he's not that thirsty, and that's the end of it.
Same thing with "did you brush your teeth?" and an affirmative answer despite evidence to the contrary (my son's biggest lie at that age). Clearly, if he has puppy breath it doesn't matter if he did, he needs to do it again. So instead, it's just "Irving, your breath is bad, you need to brush." "But I did!" "Well, you need to do it again." Eventually, when the lie gets him nowhere, he doesn't bother.
As for the glass eating...I've got nothin'.