Ha ha hah! Yes, that was us 6 months ago. It's so aggravating, isn't it? I really hated it when ds would say, "you can read me a book, or you can clean up my room. Those are your options." ARGHHH!
This is how I handled it. With him telling us what our options are, we pretty much just had to crush that. "We're the grown ups, and we tell you what your options are. You are a little kid, and you don't get to tell grown-ups what to do."
With the sassing, I explained that sassing is rude, and that he needs to apologize. And if he didn't apologize by the time I counted to three, he'd get a swat on the behind. And that was going to be in effect permanently. So every time he sassed me, I'd say, "You're sassing me." And he'd say, "I'm sorry!" It eventually dwindled. I think I've said that two times in the last 3 months, so it really got a lot better.
Now we're on to quelching Mr. Bossy 4 year old :)
Good luck!
P.S. This is about respect. And it is very important to teach respect in your home. That wasn't something my in-laws thought was important, and now I'm having to teach my husband! I also saw families that I babysat for. Once, right in front of me, the 3 year old told his mom that he hates her. She broke into tears. I, the 14 year old babysitter, couldn't believe what was happening! I grabbed the kid by the wrist, swatted his bum, told him very firmly that he was not to speak to his mother that way, and sent him to his room. I hate to think how those kids treat their mother now, 15 years later! So don't just take it. Your son can learn!