Augmenting Large Language Models with Humor Theory To Understand Puns